我遇到了这段特殊的代码。我把这个问题浓缩到了本节。
我在Python中运行一种菜单,第一个菜单将您发送到第二个菜单,在第二个菜单中,有一个用户可以打开/关闭的复选按钮。在第三个菜单中,我想让它读取是否打开/关闭检查按钮并将其转换为布尔值。代码:
import tkinter as tk
class MainMenu(object):
def __init__(self):
self.launch_MainMenu()
def launch_MainMenu(self):
self.master = tk.Tk()
tk.Button(self.master,text="MY BUTTON",command= lambda:self.launch_SideMenu()).grid()
tk.mainloop()
def launch_SideMenu(self):
self.master2 = tk.Tk()
self.var1 = tk.IntVar()
tk.Checkbutton(self.master2,variable=self.var1).grid()
tk.Button(self.master2,text="Test",command= lambda:self.launch_FinalMenu()).grid()
def launch_FinalMenu(self):
d = bool(int(self.var1.get()))
print(d,self.var1.get())
mainMenu = MainMenu()
输出:复选框是打开还是关闭,输出"假0"。
非常感谢任何帮助!
答案 0 :(得分:3)
根据Lafexlos的提示,错误在于调用tk.Tk()两次。对于新窗口,您必须使用tk.Toplevel()。
只需将keyline更改为:
self.master2 = tk.Toplevel()
修复一切。这需要我很长时间才能解决。感谢您的帮助,祝您今后阅读本文能够好运。