Python中的多个窗口,tkinter

Python中的多个窗口,tkinter,python,tkinter,Python,Tkinter,我试图写一个程序,在其中你可以打开一个单独的测试/调试窗口。例如,第二个窗口包含一些影响主窗口的按钮。我已经尝试了一些东西,我能够打开两个独立的窗口,但无论我想画的是在主窗口 import tkinter as tk from tkinter import * def debugWindow(): dbWin = tk.Tk() dbWin.title("Debug") btn = tk.Button(text="Test")

我试图写一个程序,在其中你可以打开一个单独的测试/调试窗口。例如,第二个窗口包含一些影响主窗口的按钮。我已经尝试了一些东西,我能够打开两个独立的窗口,但无论我想画的是在主窗口

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还很陌生,所以如果这不是你通常的做法,请纠正我。我仍在学习:也很抱歉我的英语不是母语。

如果您想让按钮停留在名为dbWin的窗口上,那么,不要使用:

btn = tk.Button(text="Test")
python假设按钮在主窗口上, 使用:

使用此选项将专门指定第二个参数,从而允许按钮进入窗口dbWin


感谢那些在我之前的评论中说过这句话的人

你想在第二个窗口中使用Toplevel——第二次调用Tk确实会给你第二个窗口,但它生活在一个完全独立的GUI环境中,无法与原始环境交互。要将小部件放入特定窗口或其他容器中,请将其作为第一个参数传递给小部件。@ZuckerPaa as@jsonharper说将btn=tk.Buttontext=Test更改为btn=tk.ButtondbWin,text=Test告诉tkinter btn的主窗口应该是第二个窗口,否则它会假设第一个窗口是主窗口。这不是@jasonharper和我在评论中说的吗?@TheLizzard:如果你想得到一个答案,你需要写一个答案,而不是评论。不要责怪其他人创建了与评论信息相同的答案。在这种情况下,你不知道他们是否从你的评论中得到了答案,或者他们是否仅仅知道答案并提交了它。@BryanOakley鉴于jasonharper发表评论已经8分钟了,所以不应该完全相信这个答案。DavidLiu可能花了8分钟来解决问题并键入答案,但我认为不太可能。我认为给予表扬是必须的。如果你不同意我的观点,那也没关系,但我还是会尽力承认你的观点due@TheLizzard当前位置如果有人写了一个与你的评论相符的正确答案,那没有什么错。如果你想要信用,写一个答案而不是评论。是的,他们应该给予表扬,但你不应该自动认为他们复制了你的评论。你在没有任何证据的情况下指责他们。@BryanOakley我认为这不是巧合,因为在jasonharper写下评论后8分25秒。我决定写我自己的答案不会尊重jasonharper,因为他首先在OP的代码中发现了问题。没有办法得到证据,所以我使用概率。
btn = tk.Button(dbWin, text="Test")