【tkinter】“跳出mainloop” 执行后面代码的一个方法

标题加双引号是因为不是真正意义上跳出mainloop,而是用一种投机取巧的方式达到和mainloop相同的效果,但又可以执行后面的代码。

我本来是用kivy做了一个主界面,里面有个按钮是上传并裁剪图片的功能,这个裁剪界面win用tkinter做。

win=Toplevel()
win.title('裁剪图片')

在这里插入图片描述

这个界面需要持续监控鼠标的操作,使用win.mainloop()可以完美实现裁剪功能,但是退出裁剪界面后原来的主界面就会卡死。在网上查找资料,大部分文章都是说mainloop()后面的代码就是执行不了的,除非用多线程(我不会),又看到有人说用update()也可以实现对窗口的监控,但是只能更新1次。于是调用【winfo_exists()】函数,判断是否关闭当前窗口,关闭窗口后就跳出win.update()循环。

flag = 1
while flag:      # 关闭窗口后退出循环
    win.update()
    if not win.winfo_exists():
        flag = 0 

经过测试,未关闭窗口时功能使用正常,关闭窗口后主界面就又可以动了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值