![]() |
1
12
GTK+不是线程安全的,因此您不应该简单地从其他线程调用GUI更新方法。 glib.idle_add (或gobject.idle_外接程序旧的pygtk版本)可用于此目的。 不是写:
你会写:
这会导致函数调用在gtk+中排队。 如果需要运行多个语句,则通常更容易将它们包装在函数中:
确保传递给
编辑:
正如丹尼尔指出的,你需要打电话
|
![]() |
2
2
如前面的答案所述,GTK不是“线程安全的”,但它是“线程感知的”-请参阅线程上的本页: https://developer.gnome.org/gdk2/stable/gdk2-Threads.html
为了从另一个线程修改GTK小部件,必须使用GTK的锁。呼叫
请注意,上面的内容在Windows上不起作用(请参见上面的链接)。在Windows上必须使用
|
![]() |
3
-1
使用语法与上述相同的gobject.idle_add方法也可以实现相同的效果,您必须导入模块gobject。 |
![]() |
4
-1
Johannes说的是正确的,但是由于GTK是glib和gobject的包装器,所以您实际上需要使用gtk.idle-add()。不需要不必要的进口。 |
![]() |
July · 如何定义数字间隔,然后四舍五入 1 年前 |
![]() |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
|
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
![]() |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
|
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
![]() |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |