您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Tkinter:在主循环中调用事件

Tkinter:在主循环中调用事件

要回答“如何从单独的对象调用TkInter事件”这一特定问题,请使用event_generate命令。它允许您将事件注入到根窗口的事件队列中。结合Tk强大的虚拟事件机制,它成为方便的消息传递机制。

例如:

from tkinter import *

def doFoo(*args):
    print("Hello, world")

root = Tk()
root.bind("<<Foo>>", doFoo)

# some time later, inject the "<<Foo>>" virtual event at the
# tail of the event queue
root.event_generate("<<Foo>>", when="tail")

请注意,该event_generate呼叫将立即返回。目前尚不清楚这是否是您想要的。一般来说,您不希望基于事件的程序阻塞对特定事件的响应,因为它会冻结GUI

我不确定这是否可以解决您的问题;没有看到您的代码,我不确定您真正的问题是什么。例如,我可以在对象的构造函数中访问root的方法,在该对象中传递根而无需应用程序锁定。这告诉我您的代码中还有其他事情。

这是一个从其他对象成功访问根窗口上的方法的示例:

from tkinter import *

class myClass:
    def __init__(self, root):
        print("root background is %s" % root.cget("background"))

root = Tk()
newObj = myClass(root)
其他 2022/1/1 18:40:56 有600人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶