我在tkinter中创建了一个按钮,它的命令是创建一个新窗口,但我不希望每次单击创建新窗口按钮时都创建一个新窗口,我希望告诉程序只有在新窗口尚未打开时才打开它。如果在后台的某个地方窗口已经打开,用户按下创建一个新窗口按钮,我希望它移动该窗口的第一用户屏幕的层(使其位于所有其他打开窗口的最前面)。
这是我的代码--
def main():
main_bg = "Gray"
main_fg = "White"
import tkinter as tk
employees = []
window = tk.Tk()
window.configure(bg=main_bg)
window.title("Business app")
window.geometry("1100x650")
def open_new_window():
random_window = tk.Toplevel(window)
random_window.configure(bg=main_bg)
random_window.geometry("600x600")
random_button = tk.Button(window, text="Do Something", font="Times 32", bg=main_bg, fg=main_fg, command=open_new_window)
random_button.pack()
window.mainloop()
if __name__ == "__main__":
main()
我已经搜索了像Geeksforgeeks和这个网站的网站,但我找不到我正在寻找的解决方案。请帮助。
注意--请不要关闭此问题并将我指向另一个论坛,因为如上所述,我已在此网站中检查了其他论坛
2条答案
按热度按时间qvtsj1bj1#
添加的
grab_set()
将防止再次打开新窗口。结果:
当您点击
Do Something
时将阻止打开新窗口。除非关闭topelevel
窗口,然后再次打开新窗口vuv7lop32#
你可以保存一个对小部件的引用,然后检查引用是否被设置,如果被设置,你可以调用
winfo_exists
来检查引用是否指向一个现有的窗口。