huyanmin 发表于 2022-7-17 10:24:05

tkinter为什么代码不写mainloop()也能进入事件循环

本帖最后由 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-7-17 11:38:08

你的代码我执行了后,没有任何结果

huyanmin 发表于 2022-7-17 13:53:32

临时号 发表于 2022-7-17 11:38
你的代码我执行了后,没有任何结果

你是不是没有安装tkinter模块,我能正常运行

临时号 发表于 2022-7-17 13:59:17

huyanmin 发表于 2022-7-17 13:53
你是不是没有安装tkinter模块,我能正常运行

没有报错,但没有结果,没有弹窗口
但我把mainloop()加上就有窗口了
tkinter是python自带的,没有tkinter就没办法启动idle

huyanmin 发表于 2022-7-17 14:17:39

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

我却能正常执行这段程序,你的没有反应,我也百思不得其解

lhgzbxhz 发表于 2022-8-12 20:59:04

可能你是通过idle运行的,idle就是用Tkinter写的,所以相当于一开始就在mainloop里面,自然不用了。

huyanmin 发表于 2022-9-2 16:30:45

lhgzbxhz 发表于 2022-8-12 20:59
可能你是通过idle运行的,idle就是用Tkinter写的,所以相当于一开始就在mainloop里面,自然不用了。

我确实是在idea里面运行的,我在pycharm试了,不报错,但是显示不出任何东西,非常感谢
页: [1]
查看完整版本: tkinter为什么代码不写mainloop()也能进入事件循环