QT总结之线程
来源:互联网 发布:ubuntu常用命令 编辑:程序博客网 时间:2024/06/06 01:34
QT总结之线程
实现一个计时器
1.创建一个线程类继承thread
mythread.h
#ifndef MYTHREAD_H#define MYTHREAD_H#include <QObject>class myThread : public QObject{ Q_OBJECTpublic: explicit myThread(QObject *parent = 0); //线程处理函数 void myTimeout(); void setFlag(bool flag=true);signals: void mySignal();public slots:private: bool isStop;};#endif // MYTHREAD_H
mythread.cpp
#include "mythread.h"#include <QThread>#include <QDebug>myThread::myThread(QObject *parent) : QObject(parent){ isStop = false;}void myThread::myTimeout(){ while(isStop == false){ QThread::sleep(1); emit mySignal(); qDebug()<<"子线程"<<QThread::currentThread(); if(isStop){ break; } }}void myThread::setFlag(bool flag){ isStop=flag;}
2.界面类
widget.h 声明qthread和mythread 变量
#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include "mythread.h"#include <QThread>namespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECTpublic: explicit Widget(QWidget *parent = 0); ~Widget(); void dealSignal();signals: void startThread();private slots: void on_start_clicked(); void on_stop_clicked();private: Ui::Widget *ui; myThread *myT; QThread *thread;};#endif // WIDGET_H
widget.cpp
#include "widget.h"#include "ui_widget.h"#include<QDebug>Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); //动态分配空间,不能指定父对象 myT=new myThread; //创建子线程 thread = new QThread(this); //把自定义线程,加入到子线程中 myT->moveToThread(thread); connect(myT, &myThread::mySignal, this ,&Widget::dealSignal); qDebug()<<QThread::currentThread(); connect(this, &Widget::startThread, myT, &myThread::myTimeout);}Widget::~Widget(){ delete ui;}void Widget::dealSignal(){ static int i=0; i++; ui->lcdNumber->display(i);}void Widget::on_start_clicked(){ thread->start(); myT->setFlag(false); //不能直接调用线程处理函数 //myT->myTimeout(); emit startThread();}void Widget::on_stop_clicked(){ myT->setFlag(true); thread->quit(); thread->wait();}
阅读全文
0 0
- QT总结之线程
- C++ GUI QT 第4版 之线程 -------总结
- Qt 学习之路 2(75):线程总结
- Qt之线程同步
- QT之线程
- Qt之线程基础
- Qt之线程同步
- Qt之线程QThread
- Qt之线程同步
- Qt线程之moveToThread
- Qt随笔之Qt线程同步
- Qt之线程和QObject
- qt 之线程调试篇
- Qt之线程(QThread)
- Qt之线程(QThread)
- qt线程同步之信号量
- QT线程例程之理解
- qt之进程和线程
- python 爬取网页中的图片到本地
- 递推,递归及其优化
- Swift之自定义UIView
- Java 8 Lambda : Comparator 示例
- python基础学习笔记
- QT总结之线程
- linux常用命令及操作
- 使用JS写一个计算器练习
- PHP发送邮箱激活验证
- 解决Error inflating class android.support.design.widget.FloatingActionButton
- 分析知识,解决问题,设计方案
- Codeforces 241D : Numbers
- Springboot单元测试和Jdbctemplate的使用
- hdu5517 二维线段树