python多窗口传递信息_Python/Tkinter:连续打开多个窗口(并共享信息?)

虽然我并不是说你的代码必须与下面的代码相似,因为相同的行为可以用不同的方式和样式编写,但它会满足你的需要。在

我在你的代码中看到了两三个基本错误。在

通过调用Tk()将主根窗口作为参数传递。

这是错误的,因为应该只有一个Tk实例,在tkinter程序中使用TK()调用。给它一个名称,比如root,然后使用它们的引用。在

其次,你看不到任何东西,因为你一直睡不着觉,你应该调用mainloop(),否则你的程序不会更新UI,也不会响应事件。在

mainloop是Tk实例的tkinter事件循环。因此,使用所有小部件设置完整的UI,并确保代码到达并结束调用root.mainloop()的语句。在

另外,您通常不需要调用sleep(),这是一个阻塞函数。任何阻塞函数也会阻塞主循环,禁止更新和事件接收,直到它返回为止。在

下面是一些代码from tkinter import ttk, Tk, Toplevel

root = Tk()

welcome_window = Toplevel(root)

welcome_window.title('Welcome')

lab_window = Toplevel(root)

lab_window.title('Lab')

root.withdraw() # hide root window

lab_window.withdraw() # hide lab window

def goto_lab():

welcome_window.destroy()

lab_window.deiconify() # show lab window

button1 = ttk.Button(welcome_window, text='Close',\

command=goto_lab)

button1.pack(padx=100, pady=50)

button2 = ttk.Button(lab_window, text='Close',\

command=quit)

button2.pack(padx=100, pady=50)

root.mainloop()

关于给你的GUI代码一些结构,当你开始学习tkinter时,看看这个thread

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值