почему виджеты tkinter не отображаются в vscode?

#python-3.x #tkinter

#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:UsersEladDesktopcodingtkintertut.py", line 6, in <module>
    button1 = ttk.Label(root, text = 'lol')
  

Ответ №1:

root.mainloop() Должно быть в конце кода, чтобы окно отображалось, а не сразу после объявления root .

 from tkinter import *
from tkinter import ttk

root = Tk()

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

root.mainloop()
  

Объяснение:

Только строки кода между root и root.mainloop() выполняются до тех пор, пока открыто окно, если вы закроете окно, Labels и все другие виджеты, объявленные после root.mainloop() , станут активными, но окно теперь закрыто и root уничтожено, отсюда и ошибка. Но здесь, в моем ответе, код между root и root.mainloop() содержит все, что мне нужно, чтобы быть в окне, и, следовательно, он показывает полное окно. Просто имейте в виду, чтобы всегда указывать root.mainloop() только в конце кода

Надеюсь, это устранило ваши ошибки. Дайте мне знать, если возникнут еще какие-либо ошибки или сомнения.

Приветствия

Ответ №2:

Ваш root.mainloop() должен быть последним кодом!

 from tkinter import *
from tkinter import ttk

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