2012-06-27 68 views
0

我想在一个线程中显示我的加载器对话框,因为当我开始上传我的文件系统时,我看不到窗口,直到处理完成。在python中显示一个对话框

我想是这样的:

thread.start_new_thread(self.display_loader(),(self)) 

,但没有奏效。

有一种特殊的方式可以在一个线程中运行一个新窗口?

一切都与Python和PyGTK的

+0

你是否为Gtk初始化线程? [这](http://faq.pygtk.org/index.py?file=faq20.006.htp&req=show)是一些帮助 –

回答

0

当你说self.display_thread()完成后,将实际呼叫display_thread功能就在那里,并通过其返回值作为第一个参数thread.start_new_thread。这可能不是你想要的。

这就是说,我认为你最好换个角度去做;让主线程拥有UI,然后在线程中加载。

记住,GTK +是不是很线程安全的,这是绝对最好从线程做GTK + 所有互动。我已经了解它(我一直在使用GTK +约15年,但很少有线程),这可能是过度简化了一点,这是“共同事实”。尽管如此,在这种情况下,并不确定是否真的让生活变得更加容易。为了完整起见,我想提一提。

+0

我想要做的是显示我的加载程序在一个新的线程,什么“display_loader()”的作用是: loader.show() 也许我可以尝试在线程中运行上传器文件,并在每次完成上传时与加载器进行通信。 我想要做的是一个装载程序,告诉你“我正在上传10个文件中的1个”,并在每次完成上传文件时更新此文本 – max246