QThread使用整理

来源:互联网 发布:青娱乐论坛最新域名 编辑:程序博客网 时间:2024/05/09 01:58

效果图
这里写图片描述

源码
threaddlg.h

#ifndef THREADDLG_H#define THREADDLG_H#include <QDialog>#include <QPushButton>#include "workthread.h"#define MAXSIZE 5class ThreadDlg : public QDialog{    Q_OBJECTpublic:    ThreadDlg(QWidget *parent = 0);    ~ThreadDlg();    private:    QPushButton *startBtn;//开始    QPushButton *stopBtn;//停止    QPushButton *quitBtn;//退出public slots:    void slotStart();//开始响应    void slotStop();//停止private:    WorkThread *workThread[MAXSIZE];//线程数组};#endif // THREADDLG_H

threaddlg.cpp

#include "threaddlg.h"#include <QHBoxLayout>ThreadDlg::ThreadDlg(QWidget *parent)    : QDialog(parent){    setWindowTitle(tr("线程"));    startBtn = new QPushButton(tr("开始"));    stopBtn = new QPushButton(tr("停止"));    quitBtn = new QPushButton(tr("退出"));    QHBoxLayout *mainLayout = new QHBoxLayout(this);    mainLayout->addWidget(startBtn);    mainLayout->addWidget(stopBtn);    mainLayout->addWidget(quitBtn);    connect(startBtn,SIGNAL(clicked()),this,SLOT(slotStart()));    connect(stopBtn,SIGNAL(clicked()),this,SLOT(slotStop()));    connect(quitBtn,SIGNAL(clicked()),this,SLOT(close()));}ThreadDlg::~ThreadDlg(){}void ThreadDlg::slotStart(){    for(int i=0;i<MAXSIZE;i++)    {        workThread[i]=new WorkThread();    }    for(int i=0;i<MAXSIZE;i++)    {        workThread[i]->start();//线程开始    }    startBtn->setEnabled(false);    stopBtn->setEnabled(true);}void ThreadDlg::slotStop(){    for(int i=0;i<MAXSIZE;i++)    {        workThread[i]->terminate();//终止        workThread[i]->wait();//等待    }    startBtn->setEnabled(true);    stopBtn->setEnabled(false);}

workthread.h

#ifndef WORKTHREAD_H#define WORKTHREAD_H#include <QThread>class WorkThread : public QThread{    Q_OBJECTpublic:    WorkThread();protected:    void run();//线程开始后执行的函数};#endif // WORKTHREAD_H

workthread.cpp

#include "workthread.h"#include <QtDebug>WorkThread::WorkThread(){}void WorkThread::run(){    while(true)    {        for(int n=0;n<10;n++)            qDebug()<<n<<n<<n<<n<<n<<n<<n<<n;    }}
原创粉丝点击