Python为什么这种情况
python吧
全部回复
仅看楼主
level 2
______
楼主
编了一个显示实时时间的tkinter GUI代码,让它在分钟数大于等于一个数(51)时,界面从绿色改为红色,但是过了这个分钟数以后它没有改过来,要重新运行一次才能达到效果,如图,
有没有大佬解答一下,谢谢,本人只是一个没学几年PYTHON的初中牲,有一些自己弄不出来
2026年02月12日 13点02分
1
level 1
HZBHZB31415926
代码不给全我只能给你算一卦了。
我猜是break放在外面导致while循环只会被执行一遍
2026年02月12日 14点02分
2
______
要放在if 和elif下面吗
2026年02月13日 01点02分
HZBHZB31415926
我只能给你算一卦,代码不给全我怎么知道。break的意思是退出当前循环,我看你while true理应是期望执行多次而非执行一次
2026年02月13日 04点02分
level 1
君木乐😢
你这个break的意义是啥?
2026年02月13日 04点02分
3
level 11
瓦妹
你试试break再缩进一下
2026年02月13日 04点02分
4
吧务
level 12
一周休七日
tkinter的主线程是不允许阻塞的,你可以after方法把需要循环的东西放进窗口的主循环里。
2026年02月13日 05点02分
5
level 1
csyan1230
首先这个 while 没意义啊
其次,tk 变换需要用 update或者 afrer 计时器来刷新界面。
把 while true 改成 def xxx(): 把这个搞成函数。
把 update time 放 if else 后面。
break 改成 root.after (1000,xxx)。
然后
xxx()
root.mainloop()走起应该就行了
你代码截的不全,猜不透啊猜不透
2026年02月16日 01点02分
6
level 4
啊窝额依乌迂
简单点跟AI说想用多进程实现这个效果,不考虑进程间通讯,主进程显示时间,第二进程检测时间并变色。
小程序不要考虑资源消耗,先跑起来再说,资源消耗什么的,等你到拿这玩意挣钱的专业水平再说。
2026年02月17日 14点02分
7
level 2
smilexu1982
你if运行完后,又break了,程序都终止运行了,不会再有elif了
2026年02月18日 00点02分
8
1