Python如何使用GUI在另一个函数中使用输入文本值

时间:2017-04-12 09:53:29

标签: python tkinter

我正在使用tkinter GUI。创建GUI,现在我的一个GUI询问输入值,我需要在另一个函数中显示该输入值并打印该值。

代码如下:

def EventOnBtnIO():
#some commutation

ForceNumericItem() #Called the function to open the new GUI

request = 'FF'+Value

print request

return

这是我的GUI,包括输入框和按钮

def ForceNumericItem():

 global Subtop
 Subtop = Toplevel(top)
 Subtop.geometry("350x110+500+200")
 Subtop.title("Force Numeric Items")
 Subtop.grab_set()

 frame = Frame(Subtop,width=15, height=200,bd = 1)
 frame.pack(fill = 'both',padx=3, pady=3)
 # frame.config(relief=RIDGE)

 global entry2 
 global entrytext2
 entrytext2 = IntVar()
 entry2 = Entry(frame,textvariable=entrytext2, width = 45)
 entry2.pack(padx = 5, pady = 5)
 entry2.focus_set()
 entry2.selection_range(0, END)


 topButtonShow = Button(frame, text = 'OK',command = ForceValue,width = 10)
 topButtonBack = Button(frame, text = 'Cancel',command = okclose,width = 10)
 topButtonShow.pack(side = LEFT,padx=45,pady=5)
 topButtonBack.pack(side = RIGHT,padx=45,pady=5)

 return

单击确定后,它应该取值并显示在我的EventOnBtnIO函数

def ForceValue():
global Value
Value = int(entrytext2.get())
print Value
Subtop.destroy()
top.deiconify()
return

我认为它与本地或全局变量相关,但无法修复它。现在获得价值

FF

预期价值

FF + Value

1 个答案:

答案 0 :(得分:1)

创建弹出窗口的功能在用户输入数字之前返回。要解决此问题,您可以使用.wait_window()方法:

def EventOnBtnIO():
    ForceNumericItem()
    top.wait_window(Subtop)
    request = 'FF'+str(Value)
    print request