在python中的线程中显示对话框

在python中的线程中显示对话框,python,multithreading,dialog,gtk,pygtk,Python,Multithreading,Dialog,Gtk,Pygtk,我试图在线程中显示我的加载程序对话框,因为当我启动文件上载系统时,在处理完成之前,我无法看到窗口 我试过这样的方法: thread.start_new_thread(self.display_loader(),(self)) 但它不起作用 在线程中运行新窗口有一种特殊的方法吗 Python和PyGtk的所有操作都是在你说self.display_thread()时完成的,它实际上会在那里调用display_thread函数,并将其返回值作为第一个参数传递给thread.start_new_t

我试图在线程中显示我的加载程序对话框,因为当我启动文件上载系统时,在处理完成之前,我无法看到窗口

我试过这样的方法:

thread.start_new_thread(self.display_loader(),(self)) 
但它不起作用

在线程中运行新窗口有一种特殊的方法吗


Python和PyGtk的所有操作都是在你说
self.display_thread()
时完成的,它实际上会在那里调用
display_thread
函数,并将其返回值作为第一个参数传递给
thread.start_new_thread
。那可能不是你想要的

也就是说,我认为你最好换一种方式来做;让主线程拥有UI,并在线程中进行加载

请记住,GTK+不是非常线程安全的,最好从单个线程执行与GTK+的所有交互


更新:事实上,上述内容可能过于简化了一点,这是我所理解的“共同真理”(我已经使用GTK+15年了,但很少使用线程)。以一种更宽容的方式重新陈述,但不确定在这种情况下,它是否真的让生活变得那么容易。为了完整起见,我想在中提到。

我想做的是在一个新线程中显示我的加载程序,“display_loader()”的作用是:loader.show()也许我可以尝试在一个线程中运行上载程序文件,并在每次完成上载时与加载程序通信。我想做的是一个加载器,它告诉你“我正在上传10个文件中的1个”,并在每次我上传完一个文件时更新这个文本。你为Gtk初始化了线程吗?有所帮助