Python ¿;我怎样才能避开这个问题;“未申报”;错误
这不是太笼统,所以我不能把它浓缩在标题下,但这是我的问题。我正在使用Tkinter创建一个非常简单的UI来选择一个选项,用一个按钮确认该选项,然后按钮将忘记标签,以便更新它们并再次打包。看起来像这样Python ¿;我怎样才能避开这个问题;“未申报”;错误,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,这不是太笼统,所以我不能把它浓缩在标题下,但这是我的问题。我正在使用Tkinter创建一个非常简单的UI来选择一个选项,用一个按钮确认该选项,然后按钮将忘记标签,以便更新它们并再次打包。看起来像这样 from tkinter import ttk class window(ttk.Frame): def __init__(self, master): super().__init__(master) self.option1 = ttk.
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()
,但是按钮似乎没有受到更改,因为按下它什么也不做。问题是您调用了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()
您的缩进已关闭,可以修复吗?请提供预期的缩进。即使使用固定缩进,此代码也不可能按编写的方式工作。Tk仅在Python2上由
Tkinter
提供(在Python3上是Tkinter
)。但是没有一个argsuper()
只是Python 3。请提供一个实际的问题,并用python-3.x或python-2.x标记您的问题,以指示应该使用哪个版本。不存在“未声明”错误。在任何情况下,缩进都是完全错误的,并且是python的一个关键部分,因此您必须修复它以反映您的实际用例。最后,请始终提供一个。最后,我敢肯定您在编写python类定义时遇到了一些基本的障碍,您是否做过任何研究以了解可能的原因以及如何解决它?让我们不要结束这个。。。问题相当清楚。这也许是一个很好的重复。我想这解释了为什么我在以前的项目中采用了类似的方法,尽管在我声明的函数和其他对象的顺序上具有几乎相同的结构,但出于某种原因,我决定省略这两个self
。当我再次使用电脑时,我会尝试一下。