4

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

gobject.idle_add(self.gui.get_object('button1').set_sensitive, False)

在一个线程中?因为 self.gui.get_object 是 GUI 框架中的一个函数,但 self.gui.get_object('button1') 实际上是在调用它。

谢谢您的回答。

4

2 回答 2

1

你在那里显示的电话似乎是安全的。正如已经发布的那样,您可以get_object在任何线程中正常阅读 (),但只能set_sensitive在主线程中修改 ()。正是在这里完成,idle_add将事件添加到在主线程中运行的主循环中。

于 2012-07-23T15:37:46.993 回答
0

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

于 2012-05-02T08:53:43.600 回答