我正在尝试在一个线程中显示我的加载器对话框,因为当我启动文件的上传系统时,在处理完成之前我无法看到窗口。
我试过这样的事情:
thread.start_new_thread(self.display_loader(),(self))
但它不起作用。
有一种在线程中运行新窗口的特殊方法吗?
一切都是用Python和PyGtk完成的
答案 0 :(得分:0)
当您说self.display_thread()
时,实际上会调用 display_thread
函数,并将其返回值作为第一个参数传递给thread.start_new_thread
。这可能不是你想要的。
那就是说,我认为你最好不要这样做;让主线程拥有UI,然后在线程中进行加载。
请记住,GTK +不是非常线程安全的,最好是从单个线程中与GTK +进行所有交互。
更新:实际上,上面的内容可能过度简化,这是我所理解的“常见事实”(我已经使用GTK +约15年但很少用线程)。 This article以更宽容的方式重新陈述它,不知道在这种情况下它是否真的让生活变得更加容易。为了完整起见,我想提一下。