【发布时间】:2018-09-27 02:23:46
【问题描述】:
我将 Python 的 TkInter 模块用于 GUI。下面是一个简单的复选框代码。
def getCheckVal():
print cbVar.get()
windowTime=Tk.Tk()
cbVar = Tk.IntVar()
btnC = Tk.Checkbutton(windowTime, text="Save", variable = cbVar, command=getCheckVal)
btnC.grid()
windowTime.mainloop()
此代码运行良好。每次勾选复选框时,我得到 1,否则为 0。
但是,当我在另一个 TkInter 命令(按下按钮时)调用的函数中运行相同的代码时,它会停止工作。我总是得到 0 作为值。
class GUIMainClass:
def __init__(self):
'''Create the main window'''
self.window = Tk.Tk()
def askUser(self):
def getCheckVal():
print cbVar.get()
windowTime=Tk.Tk()
cbVar = Tk.IntVar()
btnC = Tk.Checkbutton(windowTime, text="Save", variable = cbVar,
command=getCheckVal)
btnC.grid()
windowTime.mainloop()
def cmdWindow(self):
frameShow=Tk.Frame(self.window)
frameShow.grid()
btnSwitch = Tk.Button(frameShow, text='Show Plots', command=self.askUser)
btnSwitch.grid()
self.window.mainloop()
GUIObj=GUIMainClass()
GUIObj.cmdWindow()
这很不寻常。可能出了什么问题?
编辑:我使用了 2 个主循环,因为我希望在单击“显示绘图”按钮时打开一个单独的窗口 (windowTime)。这个新窗口应该有复选框。
【问题讨论】: