【发布时间】:2019-05-10 14:20:40
【问题描述】:
我正在使用 Python、Gtk3 和 Glade 构建用户界面。我想同时更改 UI 上的几项内容(即启动动画并显示新文本),这会导致应用程序冻结。
我读到 Gtk 不是线程安全的,所以我没有使用 Thread 模块。 相反,我使用了 Glib.idle_add 和 Gdk.threads_add_idle 函数。我正在尝试更新树视图,显示一些文本并同时显示动画徽标。该应用程序可以工作,但它会冻结几秒钟,然后所有内容同时出现。我尝试为线程设置不同的优先级,但似乎没有解决它。
Gtk.threads_add_idle(Glib.PRIORITY_DEFAULT, label.set_text, "text_to_set")
Gtk.threads_add_igle(GLib.PRIORITY_DEFAULT, function_to_display_logo)
我希望显示不同的文本、树视图和徽标而不会出现任何冻结。有谁知道我该如何解决这个问题?
【问题讨论】:
标签: python multithreading gtk3 glib glade