当前位置: 首页 > news >正文

厦门石材网站建设深圳画册设计排版

厦门石材网站建设,深圳画册设计排版,郑州设计公司招聘,做网站的人找不到了0. 写在前面 Qt-线程1-Run-CSDN博客 上一篇介绍了为何要使用线程#xff0c;这篇介绍第二种线程编写方式#xff1b;这种方式代码写起来复杂一些#xff0c;硬币总是有两个面#xff0c;虽然写起来复杂#xff0c;但是逻辑是很清晰的。 #xff08;1#xff09;新…0. 写在前面 Qt-线程1-Run-CSDN博客        上一篇介绍了为何要使用线程这篇介绍第二种线程编写方式这种方式代码写起来复杂一些硬币总是有两个面虽然写起来复杂但是逻辑是很清晰的。 1新建自己的Thread的类用于完成自己想执行的函数设置一个标志位用于随时启动或者停止线程 2新创建一个QThread的类利用moveToThread方法将自己的类放进QThread线程中 3利用signal-slot信号与槽的方式将子线程和主线程连接起来最后注意摧毁关闭掉线程即可。 1. 全部代码 ### mythread.h ### #ifndef MYTHREAD_H #define MYTHREAD_H#include QObjectclass mythread : public QObject {Q_OBJECT public:explicit mythread(QObject *parent nullptr);//线程处理函数void myTimeout();void setFlag(bool flag true);signals:void mySignal();public slots:private:bool isStop; };#endif // MYTHREAD_H### qtthreadmov.h ### #ifndef QTHREADMOVE_H #define QTHREADMOVE_H#include QWidget #include mythread.h #include QThreadnamespace Ui { class QThreadMove; }class QThreadMove : public QWidget {Q_OBJECTpublic:explicit QThreadMove(QWidget *parent 0);~QThreadMove();void dealSignal();signals:void startThread(); //启动子线程的信号private slots:void on_pBtn_start_clicked();void on_pBtn_stop_clicked();void dealClose();private:Ui::QThreadMove *ui;mythread* myT;QThread* thread1;};#endif // QTHREADMOVE_H### mythread.cpp ### #include mythread.h #include QThread #include QDebugmythread::mythread(QObject *parent) : QObject(parent) {isStop false;}void mythread::myTimeout() {while(!isStop){QThread::sleep(1);emit mySignal();qDebug() 子线程号: QThread::currentThread();if(isStop){break;}}}void mythread::setFlag(bool flag) {isStop flag; }### qtthreadmove.cpp ### #include qthreadmove.h #include ui_qthreadmove.h #include QDebugQThreadMove::QThreadMove(QWidget *parent) :QWidget(parent),ui(new Ui::QThreadMove) {ui-setupUi(this);//动态分配空间不能指定父对象自己创建的线程类myT new mythread;//创建子线程thread1 new QThread(this);//自定义线程加入到子线程中myT-moveToThread(thread1);//子线程处理完数据之后返回信号主线程做处理connect(myT,mythread::mySignal,this,QThreadMove::dealSignal);qDebug() 主线程号: QThread::currentThread();//打开线程开关//主线程给子线程开关指令子线程执行函数操作connect(this,QThreadMove::startThread,myT,mythread::myTimeout);//销毁线程connect(this,QThreadMove::destroyed,this,QThreadMove::dealClose);//线程处理函数内部不允许操作图形界面//conncet()第五个参数的作用连接方式默认队列直接//如果是多线程默认是队列如果是单线程默认是直接方式//队列槽函数所在线程和信号接收者一样}QThreadMove::~QThreadMove() {delete ui; }void QThreadMove::on_pBtn_start_clicked() {if(thread1-isRunning() true){return;}//如果启动线程但是没有启动线程处理函数thread1-start();myT-setFlag(false);//不能直接调用线程处理函数直接调用导致线程处理函数和主线程是在同一个线程//myT-myTimeout();//只能通过signal-slot的方式来调用emit startThread();}void QThreadMove::dealSignal() {static int i 0;i;ui-lcdNumber-display(i); }void QThreadMove::on_pBtn_stop_clicked() {if(thread1-isRunning() false){return;}myT-setFlag(true);thread1-quit();thread1-wait(); }void QThreadMove::dealClose() {on_pBtn_stop_clicked(); }
http://www.zqtcl.cn/news/106651/

相关文章:

  • 电脑怎么做网站赚钱柳州柳北建设局网站
  • 农村服务建设有限公司网站设计基础网站推荐
  • 做网站的编程语言组合ppt模板免费的网站推荐
  • 泰安企业建站公司流程上海营销型网站报价
  • 网站承载量怎么做福州公交集团网站建设
  • 新吴区住房和建设交通局网站小程序商城哪家好排行榜
  • 中小学网站建站模板长春火车站咨询电话
  • c2c网站特点公司网站建设亚运村
  • 邢台wap网站建设费用黑帽seo之搜索引擎
  • 如何用阿里云做网站刷题网站怎么做
  • 织梦制作手机网站上海猎头公司名单
  • 免费生成图片的网站wordpress 购物
  • 江西建设部网站国际新闻最新消息今天2023
  • 怎么做网站啊wordpress英文显示改中文
  • 建筑专业网站有哪些网站标题seo外包优化
  • 浙江建设厅网站施工员报名中国建设协会官网站
  • 网站建设优化是干嘛上海今天最新的新闻
  • 网站大全浏览器软文的概念
  • 盐山做网站价格莱芜征婚吧
  • 具有品牌的微网站建设网站设计培训班前台
  • 网站推广工具推荐html网站地图在线生成
  • 成都本地网站建设青岛电子商务的网站建设
  • 北京网站开发培训河南省百城建设提质工程网站
  • 郑州专业建网站南通网站建设技术支持
  • 简约网站程序网络营销方式较为单一
  • 绍兴企业自助建站123房产网
  • 科技类网站设计特点备案 网站首页地址
  • 做兼职网站网站建设培训速成
  • 开源的网站管理系统商务网站设计与建设实训
  • 东莞三合一网站制作江阴做网站的公司有