【问题标题】:Display a Dialog in a thread in python在python的线程中显示一个对话框
【发布时间】:2012-06-27 15:25:17
【问题描述】:

我正在尝试在线程中显示我的加载器对话框,因为当我启动文件的上传系统时,在处理完成之前我看不到窗口。

我试过这样的:

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

但是没有用。

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

一切都用 Python 和 PyGtk 完成

【问题讨论】:

  • 你为 Gtk 初始化线程了吗? This 有帮助

标签: python multithreading dialog gtk pygtk


【解决方案1】:

当您说self.display_thread() 时,实际上会调用display_thread 函数,并将其返回值作为第一个参数传递给thread.start_new_thread。这可能不是你想要的。

也就是说,我认为你最好反过来做;让主线程拥有 UI,并在线程中完成加载。

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

更新:实际上,以上内容可能过于简单化了,这是我所理解的“常识”(我已经使用 GTK+ 约 15 年,但很少使用线程)。 This article 以更宽容的方式重新陈述了它,但不确定在这种情况下它是否真的让生活变得更轻松。为了完整起见,我想提一下。

【讨论】:

  • 我想做的是在一个新线程中显示我的加载器,“display_loader()”所做的是:loader.show() 也许我可以尝试在一个线程中运行上传器文件每次我完成上传时都与加载程序进行通信。我想要做的是一个加载器,它告诉您“我正在上传 10 个文件中的 1 个”,并在每次我完成上传文件时更新此文本
猜你喜欢
  • 2011-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-25
相关资源
最近更新 更多