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