Python gtkBuilder&x27;s在线程中获取_对象

Python gtkBuilder&x27;s在线程中获取_对象,python,multithreading,gtk,Python,Multithreading,Gtk,据说您不应该从线程调用GUI函数,但我想知道这是否仅适用于调用直接影响GUI的函数,还是适用于GUI库提供的每个函数。例如,可以安全地调用: gobject.idle_add(self.gui.get_object('button1').set_sensitive, False) 在线程中?因为self.gui.get_对象是gui框架中的一个函数,但是self.gui.get_对象(“button1”)实际上正在调用它 谢谢您的回答。使用GUI执行线程有点棘手。如果您想正确执行,您不应该从主

据说您不应该从线程调用GUI函数,但我想知道这是否仅适用于调用直接影响GUI的函数,还是适用于GUI库提供的每个函数。例如,可以安全地调用:

gobject.idle_add(self.gui.get_object('button1').set_sensitive, False)
在线程中?因为self.gui.get_对象是gui框架中的一个函数,但是self.gui.get_对象(“button1”)实际上正在调用它


谢谢您的回答。

使用GUI执行线程有点棘手。如果您想正确执行,您不应该从主线程以外的任何线程更新GUI(GUI库中的常见限制)。但是,您可以从多个线程进行多次读取调用。

您在那里显示的调用似乎是安全的。如前所述,您可以在任何线程中读取(
get\u object
),但只应在主线程中修改(
set\u sensitive
)。正是在这里完成的,
idle\u add
将事件添加到主线程中运行的主循环中