#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()