据说你不应该从一个线程调用GUI函数,但是我想知道这是否只适用于直接调用影响GUI的函数或者它适用于GUI库提供的每个函数。例如,可以安全地致电:
gobject.idle_add(self.gui.get_object('button1').set_sensitive, False)
在线程中?因为self.gui.get_object是来自GUI框架的函数,但是self.gui.get_object('button1')实际上是在调用它。
感谢您的回答。
答案 0 :(得分:1)
你在那里看到的电话似乎很安全。如上所述,您可以在任何线程中阅读(get_object
),但只应在主线程中修改(set_sensitive
)。这正是在这里完成的,idle_add
将事件添加到主线程中运行的主循环中。
答案 1 :(得分:0)
使用GUI进行线程处理有点棘手。如果您想要正确执行,则不应从主线程之外的任何其他线程中更新GUI(GUI库中的常见限制)。但是,您可以从多个线程进行多次读取调用。