【发布时间】:2023-04-09 22:51:01
【问题描述】:
我有一小段代码运行良好,直到我决定创建一个类并将其放入该类中。现在我的问题是,我不能再更改字符串变量了。
这是我的代码:
import tkinter as tk
import tkinter.ttk as ttk
class MainApplication(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
self.parent = parent
frame1 = ttk.LabelFrame(root, text="PANEL A", borderwidth=5)
frame1.grid(row=0, column=0, padx=5, pady=5)
frame2 = ttk.LabelFrame(frame1, text="PANEL B", width = 500, height = 1000)
frame2.grid(row=0, column=0, padx=5, pady=5, sticky='NSWE')
strVarMeasurement = tk.StringVar()
frame3 = ttk.LabelFrame(frame2, text="PANEL C")
frame3.grid(row=0, column=0, padx=5, pady=5)
lbl_01 = ttk.Label(frame3, width=20, anchor = tk.E, text="Measurement: ").grid(row=0, column=0)
e_01 = ttk.Entry (frame3, width=8, textvariable=strVarMeasurement).grid(row=0, column=1)
def setString():
strVarMeasurement.set(1234)
if __name__ == "__main__":
root = tk.Tk()
MainApplication(root)
MainApplication.setString()
root.mainloop()
这是我得到的错误: NameError:名称“strVarMeasurement”未定义
如何更改该类的字符串?
那个变量不是在MainApplication(root) 期间创建的吗?
您认为在类内部还是外部定义这样的字符串更好?
【问题讨论】:
-
因为它没有在任何地方定义。这是编写 python 类定义的一个基本方面。在提出此类问题之前,请阅读relevant documentation,或者至少在谷歌上阅读相关问题。
标签: python class variables tkinter