这不是太笼统,所以我不太可以将其缩写为标题,但这是我的问题。我正在使用Tkinter创建一个非常简单的UI来选择一个选项,用一个按钮确认该选项,然后该按钮会忘记标签以便更新它们并再次打包。看起来像这样
from tkinter import ttk
class window(ttk.Frame):
def __init__(self, master):
super().__init__(master)
self.option1 = ttk.Radiobutton(master, text="Option")
self.option2 = ttk.Radiobutton(master, text="Option")
self.button = ttk.Button(master,text="Confirm",command=Next())
self.option1.pack(side="top")
self.option2.pack(side="top")
self.button.pack(side="top")
def Next():
self.option1.pack_forget()
self.button.pack_forget()
...
之所以会出现我的问题,是因为该按钮必须使用Next()
函数,它会告诉我由于尚未声明它而无法使用它,并且如果在函数下面声明该按钮,它会告诉我该按钮尚未声明。我尝试在未事先定义命令的情况下声明了该命令,并且在读取了Next()
函数之后,我这次再次声明了该命令,即该按钮的命令应为Next()
,但该按钮似乎没有遭受改变是因为按下它无能为力。
答案 0 :(得分:1)
问题是您在定义类时调用了Next()
。您只需分配self.Next
。当您实例化该类时,将创建该按钮。请注意,Next
是实例方法,还需要一个self
参数
from Tkinter import ttk
class window(ttk.Frame):
def __init__(self, master):
super().__init__(master)
self.option1 = ttk.Radiobutton(master, text="Option")
self.option2 = ttk.Radiobutton(master, text="Option")
self.button = ttk.Button(master, text="Confirm", command=self.Next)
self.option1.pack(side="top")
self.option2.pack(side="top")
self.button.pack(side="top")
def Next(self):
self.option1.pack_forget()
self.button.pack_forget()