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; }}
阅读全文
0 0
- QThread使用整理
- QThread使用整理3-使用方法
- QThread使用整理4-总结
- QThread使用整理2-信号和槽
- QThread使用整理5-Class Reference
- QThread使用
- QThread与QWidget使用
- QThread 使用探讨
- QThread 使用探讨(zz)
- QThread 使用探讨
- 初次使用QThread
- 使用QProcess QThread
- QThread 使用探讨
- QThread与QWidget使用
- QThread 使用探讨
- QThread 使用探讨
- QThread与QWidget使用
- QThread 使用探讨
- linux学习之旅(九)&& ssh及加密控制
- Java 集合类实现原理
- maven的安装
- 开门人 关门人
- Team Queue
- QThread使用整理
- Bind最小配置详解
- springmvc异常处理
- C++中的多线程
- mysql复制
- 单片机复位原理
- 泊松图像融合算法 C++ 实现
- LightOJ
- Error Correction