|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 aboluo31 于 2017-12-7 00:20 编辑
求助大神赐教
我想做的是:通过弹出的对话框,替换程序中的一个值。
问题1、使用input()可以完成,但是现在想实现的在弹出的窗口中替换原值。总是不成功,不知道什么原因。
问题2、并且程序为什么不等我 i[2]=hand_operation(i[0],i[1],i[2]) 执行完,就已经往下执行了
论坛图片一直传不上来,表达的可能不够清楚,麻烦大家看看下面的代码
import tkinter as tk
import os
import string
import math
from tkinter import *
from tkinter import messagebox
def hand_operation(x,y,hole):
def huan_hole():
nh = float(new_hole.get())
print(nh)
tk.messagebox.showinfo('ok!', '你已经成功替换!')
window_1.destroy()
return nh
window_1 = tk.Toplevel(window)
window_1.geometry('400x100')
window_1.title('手动')
var = tk.StringVar()
#var.set('抱歉,没有找到' +str(hole)+ '对应的冲头,请在下面输入代替孔径:')
var.set('抱歉'+'('+str(x)+','+str(y)+')'+'处孔径为'+str(hole)+'冲头没有找到.请输入'+str(hole)+'的代替冲头!'+':')
tk.Label(window_1, textvariable=var, height=1).place(x=10, y=10)
new_hole = tk.StringVar()
new_hole.set('9')
entry_new_hole = tk.Entry(window_1, textvariable=new_hole, show=None, width=12)
entry_new_hole.place(x=10, y=40)
btn_comfirm = tk.Button(window_1, text='确认替换', command=huan_hole)
btn_comfirm.place(x=10, y=70)
def generate():
data=[[100,50,9],[100,80,9.5]]
for i in data:
if i[2]==9:
i[0]=i[0]+10
elif not(i[2]==9):
#i[2]=input('抱歉'+str(i[2])+'头没有找到.请输入'+str(i[2])+'的代替冲头!'+':')
i[2]=hand_operation(i[0],i[1],i[2]) #我以为此处会得到i【2】=9,实际总是在此处报错,使用input方法可以实现
print('*'+str(i[2]))
if i[2]==9:
i[0]=i[0]+9
continue
os._exit(0)
window=tk.Tk()
window.title('测试')
window.geometry('250x200')
group=tk.LabelFrame(window,text="请输入数控程序名",padx=30,pady=5)
group.pack(padx=10,pady=10)
Newcode_name=[("上:",0,0),
("下:",1,0),]
for name,num,num1 in Newcode_name:
newcode_name=tk.Label(group, text=name).grid(row=num,column=num1)
d_l = tk.StringVar()
d_r = tk.StringVar()
d_l=tk.Entry(group,textvariable=d_l,show=None,width=10)
d_l.grid(row=0,column=1,padx=10,pady=5)
d_r=tk.Entry(group,textvariable=d_r,show=None,width=10)
d_r.grid(row=1,column=1,padx=10,pady=5)
tk.Button(window,text='执行',width=10,height=1,command=generate).place(x=50,y=130)
tk.Button(window,text='退出',width=10,height=1,command=window.quit).place(x=150,y=130)
window.mainloop() |
-
|