tkinter TclError: unknown option on widget attributes
tkinter TclError: unknown option on widget attributes
这是我在 Tkinter 上的第一个应用程序,我试图从下拉菜单中选定的文件按钮获取输入,并触发单击提交按钮时要执行的功能。这 objective 已实现,但按要求设计按钮和标签失败。
root = tk.Tk()
root.geometry('1200x800')
root.title("Update System")
label_0 = Label(root, text="Update System",width=25,font=("bold", 25),height=2,bg='brown',fg='white')
label_0.place(x=170,y=30)
root.mainloop()
我收到错误 TclError: unknown option "-fg" (for bg-background, height attributes of buttons and labels).
完整的回溯如下所示:
---------------------------------------------------------------------------
TclError Traceback (most recent call last)
<ipython-input-15-2c166bb79a75> in <module>
3 root.title("Update System")
4
----> 5 label_0 = Label(root, text="Update System",width=25,font=("bold", 25),height=2,bg='brown',fg='white')
6 label_0.place(x=170,y=30)
7
~\Anaconda3\lib\tkinter\ttk.py in __init__(self, master, **kw)
759 relief, text, wraplength
760 """
--> 761 Widget.__init__(self, master, "ttk::label", kw)
762
763
~\Anaconda3\lib\tkinter\ttk.py in __init__(self, master, widgetname, kw)
557 # Load tile now, if needed
558 _load_tile(master)
--> 559 tkinter.Widget.__init__(self, master, widgetname, kw=kw)
560
561
~\Anaconda3\lib\tkinter\__init__.py in __init__(self, master, widgetName, cnf, kw, extra)
2297 del cnf[k]
2298 self.tk.call(
-> 2299 (widgetName, self._w) + extra + self._options(cnf))
2300 for k, v in classes:
2301 k.configure(self, v)
TclError: unknown option "-height"
如果有人能帮助我理解和解决这个问题,那就太好了。提前致谢!
Tk 中有 两个 Label
小部件,因此在 tkinter 中。较旧的标准 Tk 标签支持直接设置前景和背景颜色等内容,而较新的 Ttk(“Themed Tk”)不支持(而是支持主题化,特别是 它支持遵循 OS 原生主题非常接近)。它们都被保留了下来,因为新的绝对不是旧的直接替代品,而且一些应用程序(可能包括你的应用程序)需要旧的完全相同的功能。
如果我们查看您的回溯,我们会看到:
~\Anaconda3\lib\tkinter\ttk.py in __init__(self, master, **kw)
759 relief, text, wraplength
760 """
--> 761 Widget.__init__(self, master, "ttk::label", kw)
762
763
看到里面的 ttk
(两次!)?这表明您正在使用 Ttk 标签。要解决您眼前的问题,明确 使用旧问题。
# Note: tk.Label and not just Label or ttk.Label
label_0 = tk.Label(root, text="Update System",
width=25, font=("bold", 25), height=2, bg='brown', fg='white')
另一种选择是创建一种新样式,您可以将其应用于该小部件,使其以您想要的方式脱颖而出……但是对于一个简单的一次性标签来说,这需要做更多的工作。
这是我在 Tkinter 上的第一个应用程序,我试图从下拉菜单中选定的文件按钮获取输入,并触发单击提交按钮时要执行的功能。这 objective 已实现,但按要求设计按钮和标签失败。
root = tk.Tk()
root.geometry('1200x800')
root.title("Update System")
label_0 = Label(root, text="Update System",width=25,font=("bold", 25),height=2,bg='brown',fg='white')
label_0.place(x=170,y=30)
root.mainloop()
我收到错误 TclError: unknown option "-fg" (for bg-background, height attributes of buttons and labels).
完整的回溯如下所示:
---------------------------------------------------------------------------
TclError Traceback (most recent call last)
<ipython-input-15-2c166bb79a75> in <module>
3 root.title("Update System")
4
----> 5 label_0 = Label(root, text="Update System",width=25,font=("bold", 25),height=2,bg='brown',fg='white')
6 label_0.place(x=170,y=30)
7
~\Anaconda3\lib\tkinter\ttk.py in __init__(self, master, **kw)
759 relief, text, wraplength
760 """
--> 761 Widget.__init__(self, master, "ttk::label", kw)
762
763
~\Anaconda3\lib\tkinter\ttk.py in __init__(self, master, widgetname, kw)
557 # Load tile now, if needed
558 _load_tile(master)
--> 559 tkinter.Widget.__init__(self, master, widgetname, kw=kw)
560
561
~\Anaconda3\lib\tkinter\__init__.py in __init__(self, master, widgetName, cnf, kw, extra)
2297 del cnf[k]
2298 self.tk.call(
-> 2299 (widgetName, self._w) + extra + self._options(cnf))
2300 for k, v in classes:
2301 k.configure(self, v)
TclError: unknown option "-height"
如果有人能帮助我理解和解决这个问题,那就太好了。提前致谢!
Tk 中有 两个 Label
小部件,因此在 tkinter 中。较旧的标准 Tk 标签支持直接设置前景和背景颜色等内容,而较新的 Ttk(“Themed Tk”)不支持(而是支持主题化,特别是 它支持遵循 OS 原生主题非常接近)。它们都被保留了下来,因为新的绝对不是旧的直接替代品,而且一些应用程序(可能包括你的应用程序)需要旧的完全相同的功能。
如果我们查看您的回溯,我们会看到:
~\Anaconda3\lib\tkinter\ttk.py in __init__(self, master, **kw) 759 relief, text, wraplength 760 """ --> 761 Widget.__init__(self, master, "ttk::label", kw) 762 763
看到里面的 ttk
(两次!)?这表明您正在使用 Ttk 标签。要解决您眼前的问题,明确 使用旧问题。
# Note: tk.Label and not just Label or ttk.Label
label_0 = tk.Label(root, text="Update System",
width=25, font=("bold", 25), height=2, bg='brown', fg='white')
另一种选择是创建一种新样式,您可以将其应用于该小部件,使其以您想要的方式脱颖而出……但是对于一个简单的一次性标签来说,这需要做更多的工作。