我想根据我选择的单选按钮提供输出,并且程序按预期工作,同时忽略控制台,我在那里收到此错误消息:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1264.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 1892, in __call__
return self.func(*args)
File "C:\Users\x\Code\ytinfo.py", line 16, in <lambda>
self.radiomp3 = tk.Radiobutton(self.container, variable = self.var, value = 1, command = lambda:self.dreiodervier())
File "C:\Users\x\Code\ytinfo.py", line 32, in dreiodervier
self.text.insert("end", "\ntop")
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1264.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 2354, in __getattr__
return getattr(self.tk, attr)
AttributeError: '_tkinter.tkapp' object has no attribute 'text'
怎么会这样? 下面的源代码,并提前致谢!
import tkinter as tk
class Application(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
self.container = tk.Frame(self)
self.container.pack(fill="both", expand = True)
self.gui()
def gui(self):
self.var = tk.IntVar()
self.radiomp3 = tk.Radiobutton(self.container, variable = self.var, value = 1, command = lambda:self.dreiodervier())
self.radiomp3.pack()
self.radiomp3.invoke()
self.mp4 = tk.Radiobutton(self.container, variable = self.var, value = 2, command = lambda:self.dreiodervier())
self.mp4.pack()
self.text = tk.Text(self.container, borderwidth=0, highlightthickness=0, width=40)
self.text.pack()
def dreiodervier(self):
choice = self.var.get()
if choice == 1:
self.text.insert("end", "\ntop")
else:
self.text.insert("end", "\nbottom")
app = Application()
app.mainloop()