为什么tkinter小部件没有出现在vscode中?

时间:2020-09-09 12:23:19

标签: python-3.x tkinter

from tkinter import *
from tkinter import ttk

root = Tk()
root.mainloop()
button1 = ttk.Label(root, text = 'lol')
button1.pack()

当我尝试运行该程序时,仅显示窗口,但没有按钮。
它给了我这个错误:

Exception has occurred: TclError
NULL main window
  File "C:\Users\Elad\Desktop\coding\tkintertut.py", line 6, in <module>
    button1 = ttk.Label(root, text = 'lol')

2 个答案:

答案 0 :(得分:1)

root.mainloop()必须位于要显示的窗口的代码末尾,而不是在声明root之后。

from tkinter import *
from tkinter import ttk

root = Tk()

button1 = ttk.Label(root, text = 'lol')
button1.pack()

root.mainloop()

说明:

只要窗口打开,只有rootroot.mainloop()之间的代码行才会执行,如果关闭窗口,则Labels和所有其他在{{ 1}}处于活动状态,但是现在关闭了窗口,并且root.mainloop()被销毁,因此发生了错误。但是在我的回答中,rootroot之间的代码具有我需要在窗口中显示的所有内容,因此它显示了完整的窗口。请记住,始终只在代码末尾说root.mainloop()

希望它可以清除您的错误。请让我知道是否还有其他错误或疑问。

欢呼

答案 1 :(得分:0)

您的<h6>Enter your year of admission to know if your certificate is ready</h6> <input id="age"> <button onclick="myfun()">enter</button> <p id="xc"></p> <p id="cc"></p>应该是最后一个代码!

root.mainloop()