鱼C论坛

 找回密码
 立即注册
查看: 3786|回复: 6

[已解决]tkinter为什么代码不写mainloop()也能进入事件循环

[复制链接]
发表于 2022-7-17 10:24:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 huyanmin 于 2022-7-17 10:26 编辑
from tkinter import *

root= Tk()
root.title('gui程序')

thelabel= Label(root,text='窗口\n程序1',relief=GROOVE)
thelabel.pack(fill=BOTH, expand=1)

thelabel2= Label(root,text='窗口程序2',relief=GROOVE)
thelabel2.pack(fill=BOTH, expand=1)

def callback(event):
    print('窗口程序1被点击')

thelabel.bind('<Button-1>',callback)  #标签绑定了鼠标左键事件,下面的mainloop()被注释了,但是仍能进入事件循环,鼠标事件仍能被捕获

#mainloop()
#事件循环被注释了没有启动
最佳答案
2022-8-12 20:59:04
可能你是通过idle运行的,idle就是用Tkinter写的,所以相当于一开始就在mainloop里面,自然不用了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-17 11:38:08 | 显示全部楼层
你的代码我执行了后,没有任何结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-17 13:53:32 | 显示全部楼层
临时号 发表于 2022-7-17 11:38
你的代码我执行了后,没有任何结果

你是不是没有安装tkinter模块,我能正常运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-17 13:59:17 | 显示全部楼层
huyanmin 发表于 2022-7-17 13:53
你是不是没有安装tkinter模块,我能正常运行

没有报错,但没有结果,没有弹窗口
但我把mainloop()加上就有窗口了
tkinter是python自带的,没有tkinter就没办法启动idle
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-17 14:17:39 | 显示全部楼层
临时号 发表于 2022-7-17 13:59
没有报错,但没有结果,没有弹窗口
但我把mainloop()加上就有窗口了
tkinter是python自带的,没有tkinter ...

我却能正常执行这段程序,你的没有反应,我也百思不得其解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-12 20:59:04 | 显示全部楼层    本楼为最佳答案   
可能你是通过idle运行的,idle就是用Tkinter写的,所以相当于一开始就在mainloop里面,自然不用了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-2 16:30:45 | 显示全部楼层
lhgzbxhz 发表于 2022-8-12 20:59
可能你是通过idle运行的,idle就是用Tkinter写的,所以相当于一开始就在mainloop里面,自然不用了。

我确实是在idea里面运行的,我在pycharm试了,不报错,但是显示不出任何东西,非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 08:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表