Я пытаюсь написать программу, в которой вы можете открыть отдельное окно тестирования / отладки. Например, второе окно, включающее несколько кнопок, влияющих на главное окно. Я уже пробовал несколько вещей и могу открыть два отдельных окна, но все, что я пытаюсь нарисовать, отображается в главном окне.
import tkinter as tk
from tkinter import *
def debugWindow():
dbWin = tk.Tk()
dbWin.title("Debug")
btn = tk.Button(text="Test")
btn.pack()
dbWin.mainloop()
window = tk.Tk()
window.title("Mainwindow")
btn2 = tk.Button(text="Start debug Window", command=debugWindow)
btn2.pack()
window.mainloop()
Вот что я пробовал, но, как я уже сказал, вторая кнопка отображается в первом окне. Также я новичок в Python, поэтому, если вы обычно это делаете не так, пожалуйста, поправьте меня. Я все еще учусь :) И еще прошу прощения за свой английский, я не носитель языка.
Вы хотите использовать
Toplevel()
для этого второго окна - второй вызовTk()
дает вам второе окно, но оно находится в совершенно отдельной среде графического интерфейса, которая не может взаимодействовать с исходной средой. Чтобы поместить виджеты в определенное окно (или другой контейнер), передайте его в качестве первого параметра виджету.@Zuckerpapa Как сказал @ jsonharper, измените
btn = tk.Button(text="Test")
наbtn = tk.Button(dbWin, text="Test")
, чтобы указатьtkinter
, что главное окноbtn
должно быть вторым окном (в противном случае предполагается, что первое окно является главным).