【发布时间】:2014-07-02 23:34:47
【问题描述】:
我知道如何使用 qt 线程,但是可以使用线程来更新 gui 而无需子类化 qthread 或 qobject? 例如:
class Foo {
public void heavyWork();
}
Foo::heavyWork() {
doSomething();
}
并使用线程(只是一个选项)
void ThreadSubClass::run() {
myFoo.heavyWork();
updateGui(); //i know, heavyWork will run before updateGui()
}
我不想继承 qobject 或 qthread 来实现我的“foo”类,因为这个类可以(或应该)独立于 gui 库(甚至在控制台中)使用,我正在使用 Qt,但我打算尝试其他方法
【问题讨论】:
-
请注意,Qt 不是一个 gui 库,它是一个应用程序开发框架。这是一个相当重要的区别。也就是说,Qt 应用程序,即使使用 gui 和小部件模块,也可以无头运行——无需使用任何屏幕,甚至根本无需任何人工交互。 Qt 的核心和网络模块适用于很多非gui、服务器式的开发。哎呀,许多常见的 Unix 实用程序在 Qt 中重新实现时看起来非常微不足道,即使它们的 C 实现是可怕的。
标签: c++ multithreading qt user-interface worker