私信  •  关注

Community Nathan Fellman

Community Nathan Fellman 最近创建的主题
Community Nathan Fellman 最近回复了
8 年前
回复了 Community Nathan Fellman 创建的主题 » 如何使用pyqt5 python[duplicate]在测验应用程序中显示计时器

我相信您是在问,如果num()需要几秒钟才能运行,如何保持GUI的响应性?你有两个选择:

  • 如果 num() 由许多小块的“工作”组成,你可以称之为 application.processEvents() 在块之间,这将允许GUI响应事件。一个容易处理的情况是 num() 在循环中花费时间,然后在每次迭代的开始或结束时调用 应用processEvents() .在您的实际应用程序中,如果您无法访问 application 进口 qApp 来自PyQt4。
  • 更好的方法是执行 num() 在另一个线程中。有很多这样的例子(比如 this one ).一种方法是

    • 例举一个例子 QThread ,
    • 定义一个类(比如 NumberCruncher )这源于 QObject 并定义 num(self) 并定义由 num() 回来之前
    • 呼叫 numberCruncher.moveToThread(thread)
    • 连接线 started 向…发出信号 num
    • 启动线程