tkinter 打开窗口的问题
用tkinter做一个按钮,如何实现按下按钮后只打开一个窗口,而不是每按一次就打开一个新窗口用个比较笨的方法,可以这样:
from tkinter import *
def close_window():
global toplevel
toplevel.destroy()
toplevel = None
def window():
global toplevel
if toplevel == None:
toplevel = Toplevel(root)
toplevel.protocol("WM_DELETE_WINDOW", close_window)
root = Tk()
button = Button(root, text='窗口', command=window)
button.pack(padx=5, pady=5)
toplevel = None
mainloop() 本帖最后由 Wirror 于 2021-7-10 14:42 编辑
Twilight6 发表于 2021-7-10 14:08
用个比较笨的方法,可以这样:
就是说打开之后吧toplevel设置为WM_DELETE_WINDOW,关上窗口时把toplevel再设置成None吗?protocol怎么用啊
Twilight6 发表于 2021-7-10 14:08
用个比较笨的方法,可以这样:
这样行不行
from b import *
from tkinter import *
def show():
root2.update()
root2.deiconify()
if __name__ == '__main__':
root1 = Tk()
root2 = Tk()
root2.withdraw()
Button(root1, text='show', command=show).pack()
mainloop()
Wirror 发表于 2021-7-10 14:41
这样行不行
from b import *
from tkinter import *
应该可以,你这种方法感觉更简洁,建议一个 Tk 根窗口就够啦,不然每个窗口独立开来,都要一个一个去关闭
root2 = Toplevel(root1)
页:
[1]