我正在构建一个简单的GUI应用程序来管理优先级。我一直在从另一个函数访问函数中定义的对象,在本例中,从display()访问createWindow函数中的root。窗口打开但没有标签,这是我退出程序时得到的信息:
/usr/bin/python3.5 /home/cali/PycharmProjects/priorities/priorities.py Traceback (most recent call last): File "/home/cali/PycharmProjects/priorities/priorities.py", line 34, in c.main() File "/home/cali/PycharmProjects/priorities/priorities.py", line 31, in main g.display() File "/home/cali/PycharmProjects/priorities/priorities.py", line 22, in display Label(root, NameError: name 'root' is not defined
Process finished with exit code 1
以下是我迄今为止所做的:
# priorities.py
# GUI program to manage priorities
from tkinter import *
class Priority:
pass
class GuiPart:
def createWindow(self):
root = Tk()
root.resizable(width = False, height = False)
root.title = "Priorities"
root.mainloop()
return root
def display(self):
Label(root,
text = "testes").grid(row = 0, column = 1)
class Client:
def main(self):
g = GuiPart()
g.createWindow()
g.display()
c = Client()
c.main()
我使用的是python3.6。你知道吗
您想在这里使用类属性,如下所示
注意
root
的值是如何分配给self.root
,然后再从self.root
读取的。self
可用于在对象的生存期内存储对象属性。你知道吗我认为您可能需要做的是在调用createWindow()后将root存储为GuiPart类的实例变量:
现在的情况是,在创建GuiPart实例时,root存储为g.root。您的主要功能如下所示:
你也可以这样做:
那么你的主要任务是:
相关问题 更多 >
编程相关推荐