【发布时间】:2018-06-20 09:16:58
【问题描述】:
我被这段特殊的代码卡住了。我已将问题浓缩到本节。
我在 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()
输出:无论复选框是打开还是关闭,它都会输出“False 0”。
任何帮助将不胜感激!
【问题讨论】:
-
您正在创建多个
Tk()实例。你不能那样做。如果你在__init__方法中创建你的类变量(即self.var1)会更好。 -
非常感谢您对 Lafexlos 的评论。除了 tk.Tk() 还有其他方法可以打开新的窗口框吗?
-
你可以使用
tkinter.Toplevel() -
非常感谢您的帮助!我在你回答的同时找到了它!这已经解决了。