我正在尝试围绕线程和 gui 应用程序进行研究,以便开始构建它们。我下载了 Qt SDK,但有点迷茫。
为了让我能理解它是如何工作的,我想创建一个由一个文本框和两个按钮组成的 gui 应用程序。每个按钮都将启动一个新线程(因此可以同时运行 3 个:主 gui 线程,以及从按钮启动的 2 个),并且每个都可以访问文本框中的信息。我将如何设置此应用程序?
我正在尝试围绕线程和 gui 应用程序进行研究,以便开始构建它们。我下载了 Qt SDK,但有点迷茫。
为了让我能理解它是如何工作的,我想创建一个由一个文本框和两个按钮组成的 gui 应用程序。每个按钮都将启动一个新线程(因此可以同时运行 3 个:主 gui 线程,以及从按钮启动的 2 个),并且每个都可以访问文本框中的信息。我将如何设置此应用程序?
看看 SIGNAL 和 SLOTS 它是 Qt 的基础。
完成之后看看 QThread 和 QThreadPool。
我还推荐这些可怕的教程:http ://www.voidrealms.com/tutorials.aspx?filter=qt
您必须将一个插槽连接到 QPushButton clicked 信号并从该插槽启动一个新线程,如下所示。
QPushButton *button=new QPushButton();
connect(button,SIGNAL(clicked()),this,SLOT(startthread()));
并且 slot startthread 将使用工作类启动新线程
void MyClass::startthread()
{
QThread *thread=new QThread();
WorkerClass * worker=new WorkerClass();
worker->moveToThread(thread);
thread->start()
}
其中 WorkerClass 将在单独的线程中执行。