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

自己如何做企业网站标识标牌制作设计

自己如何做企业网站,标识标牌制作设计,wordpress编辑器空格,wordpress qq音乐插件【QT5-自我学习-线程qThread练习-两种使用方式-2#xff1a;通过继承Qobject类-自己实现功能函数方式-基础样例】 1、前言2、实验环境3-1、学习链接-参考文章3-2、先前了解-自我总结#xff08;1#xff09;线程处理逻辑事件#xff0c;不能带有主窗口的事件#xff08;2通过继承Qobject类-自己实现功能函数方式-基础样例】 1、前言2、实验环境3-1、学习链接-参考文章3-2、先前了解-自我总结1线程处理逻辑事件不能带有主窗口的事件2一般考虑使用的时候是当你发现主窗口会有卡顿需要线程在后台来处理。1通过继承QOject类这种方式-特点。 4、实验过程0实验目标1新建工程2UI布局3线程类代码编写4编写mainwindow.cpp内容。 5-1、实际效果5-2、代码链接6、细节部分1同样的main.cpp加入一段声明代码。 7、总结 1、前言 学习线程其实有一段时间了当时只是学习没有实际用起来最近做的一个qt程序发现如果不使用线程那么就会导致界面卡死这样才体现出线程的实际作用。 这里是第二章第二种实现线程方式这个还是和继承线程类的方式不太一样的两种本身没有优劣之分看你使用场景与习惯。 2、实验环境 实验环境还是挺重要的因为有时候在你电脑上能运行的东西在别人的电脑就不一定能运行这一部分的原因就可能是实验版本不一样。 系统环境window环境 QT软件版本qt 5.14.2 ST-Link命令行工具的版本号STM32 ST-LINK CLI v3.6.0.0 3-1、学习链接-参考文章 自己也是参考他人文章通过学习他人的文章与视频学习了qt多线程,当然要说明出处。 如下是博客地址里面相关概念总结https://subingwen.cn/qt/thread/ 如下是B站上视频也是通过视频敲的代码https://www.bilibili.com/video/BV1iN411f7dY/?spm_id_from333.337.search-card.all.clickvd_source631b10b31b63df323bac39281ed4aff3 3-2、先前了解-自我总结 博客文章说得已经非常好了自己也会重新总结下。 1线程处理逻辑事件不能带有主窗口的事件 线程可以在后台辅助你对一些数据进行除了但是对于主界面的控件等不能直接控制从使用来说 以下是一个例子不能直接使用以下方式来调用界面的控件。 ui-label-setText(data);当然是可以通过一些信号与槽或者全局变量的方式来传递数据。 2一般考虑使用的时候是当你发现主窗口会有卡顿需要线程在后台来处理。 自己本次使用的时候是因为碰到st-link烧写并且文件很大的时候主界面会直接卡住才考虑使用而不要是为了使用而使用当你觉得主界面太卡并且可以放在后台执行的时候那么你就可以开一个线程。 1通过继承QOject类这种方式-特点。 1、对比继承线程类方式这种一个显著特定没有run这个函数了你自己写自定义函数到时候直接调用就可以了。 2、编写自定义函数内容 我们很多时候是先学习怎么去做然后返回来在具体了解内部细节的。 4、实验过程 0实验目标 采用两种不同速度排序的方式对一个乱序的数组进行排序这个过程中需要生产乱序数组使用一个线程两种排序需要使用两个线程所有一种有3个线程。 1新建工程 新建工程是qtk开始的步骤至少先让你的空白模块跑起来如下这里就不过多叙述了这里直接使用之前图片了。 2UI布局 我们需要是三个框也就是listWidget,分别放置三个数组一个是乱序数组另外两个是冒泡排序和快排如下。 3线程类代码编写 本工程就不在分太多文件了只是添加一个线程文件将三个线程写在一起。 (1)添加新的文件在项目上右键然后选择“Add New…” (2)添加新的C文件然后命名 (3)这里可以先选上include QObject,细节代码我们稍后添加。 4编写对于”mythread.h“和“mythread.cpp”内容。 我们需要继承QObject类编写功能函数声明自定义函数声明的如下代码快 #ifndef MYTHREAD_H #define MYTHREAD_H#include QObject #include QThread #include QVector #include QDebugclass myThread_rand : public QObject {Q_OBJECT public:explicit myThread_rand(QObject *parent nullptr);void working(int num);signals:void sendArray(QVectorint num);};class bubblesort_thread : public QObject {Q_OBJECT public:explicit bubblesort_thread(QObject *parent nullptr);void working(QVectorint list);signals:void finish(QVectorint num);};class quickSort_thread : public QObject {Q_OBJECT public:explicit quickSort_thread(QObject *parent nullptr); //任务函数void working(QVectorint list);signals:void finish(QVectorint num);};#endif // MYTHREAD_H “mythread.cpp”内容主要是实现相应函数内容具体实现内容这里也直接给出代码块。 #include mythread.h #include QElapsedTimer #include QThreadusing namespace std;myThread_rand::myThread_rand(QObject *parent) : QObject(parent) {}bubblesort_thread::bubblesort_thread(QObject *parent) : QObject(parent) {}quickSort_thread::quickSort_thread(QObject *parent) : QObject(parent) {}void myThread_rand::working(int num) {qDebug() 生成随机数的线程地址为 QThread::currentThread() endl;QVectorint list;QElapsedTimer time;time.start();for(int i0;inum;i){list.push_back(qrand()%10000);}int milsec time.elapsed();qDebug() 生成 num 个随机总数用时 milsec 毫秒 endl;emit sendArray(list); }void bubblesort_thread::working(QVectorint list) {qDebug() 冒泡生成的线程地址为 QThread::currentThread() endl;QElapsedTimer time;time.start();// QVectorint list;int temp;for(int i0;ilist.size();i){for(int j0;jlist.size()-i-1;j){if(list[j]list[j1]){templist[j];list[j]list[j1];list[j1]temp;}}}int milsec time.elapsed();qDebug() 冒泡总数用时 milsec 毫秒 endl;emit finish(list); }void quickSort_thread::working(QVectorint list) {qDebug() 快速排序的线程地址为 QThread::currentThread() endl;QElapsedTimer time;time.start();// QVectorint list;std::sort(list.begin(),list.end());int milsec time.elapsed();qDebug() 快速排序总数用时 milsec 毫秒 endl;emit finish(list); } 4编写mainwindow.cpp内容。 这里的工作主要是创建子线程并传递数据具体可以直接参照代码。 #include mainwindow.h #include ui_mainwindow.h #include QThread #include mythread.hMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui-setupUi(this);//1.创建子线程QThread* t1 new QThread;QThread* t2 new QThread;QThread* t3 new QThread;//2.创建任务类的对象myThread_rand* gen new myThread_rand;bubblesort_thread* bubble new bubblesort_thread;quickSort_thread* quick new quickSort_thread;//3.将任务对象转移到每个子线程中gen-moveToThread(t1);bubble-moveToThread(t2);quick-moveToThread(t3);//4 按下按键 启动随机数线程connect(ui-pushButton,QPushButton::clicked,this,[](){emit starting(10000);t1-start();});//5 连接到产生随机数据函数开始产生随机数据connect(this,MainWindow::starting,gen,myThread_rand::working);connect(gen,myThread_rand::sendArray,bubble,bubblesort_thread::working);connect(gen,myThread_rand::sendArray,quick,quickSort_thread::working);connect(gen,myThread_rand::sendArray,this,[](QVectorint list){t2-start();t3-start();for(int i0;ilist.size();i){ui-listWidget_rand-addItem(QString::number(list.at(i)));}});connect(bubble,bubblesort_thread::finish,this,[](QVectorint list){for(int i0;ilist.size();i){ui-listWidget_bubblesort-addItem(QString::number(list.at(i)));}});connect(quick,quickSort_thread::finish,this,[](QVectorint list){for(int i0;ilist.size();i){ui-listWidget_quicksort-addItem(QString::number(list.at(i)));}}); }MainWindow::~MainWindow() {delete ui; } 5-1、实际效果 实际效果如下还是可以看到不同算法排序实际确实不是一样的。 5-2、代码链接 代码链接https://download.csdn.net/download/qq_22146161/88245843 6、细节部分 1同样的main.cpp加入一段声明代码。 根据博主说明要在main.cpp加入一段声明代码否则会有错误。 7、总结 这里只是实现不一样所有文章很多部分和第一篇有些类似。后续会加入一篇讲解关于移植部分。
http://www.pierceye.com/news/770448/

相关文章:

  • 建设网站模块需要哪些内容石家庄城乡建设厅网站
  • 公司网站后台管理网络公司名字大全三字
  • 广西住房建设厅网站广州seo工作
  • 做分销商城网站的wordpress 知更鸟 网格
  • 推销商务网站的途径有哪些爱网站查询挖掘工具
  • 苏州现代建设公司网站备案的域名做电影网站
  • 长沙seo网站优化公司wordpress5.1下载
  • 七星彩网投网站建设鹤壁公司做网站
  • 多语言企业网站建设费用怎么自己做购物网站
  • 中国网站排名前100线上网站开发相关书籍
  • 网站制作图书网站建设指南
  • 网站备案简单吗优化关键词排名软件
  • 泉山网站开发安徽建设工程造价信息网
  • 如何使用电子商务网站做seo需要用到什么软件
  • 新乡商城网站建设哪家专业潮汕学院网站开发
  • 西安响应式网站开发网站空间多少钱一年
  • 做电子相册的大网站怎样提高网站的权重
  • seo网站设计外包去哪个网站有客户找做标书的
  • 微商招商网站源码互联网营销推广方案
  • 深圳做网站服务公司河北石家庄最新新闻
  • 山东济南seo整站优化唐山网站建设那家性价比高
  • c 可以做哪些网站小说网站建设采集
  • 公司网站备案条件高校网站集群平台子站开发
  • 制作网站能赚钱吗单位发购物或电影卡有哪些app
  • 我们网站在那里登陆后台系统管理网站建设服务咨询
  • 免费上传图片的网址网站seo工作内容
  • chatgpt 网站一对一直播软件开发
  • 网站做排行多少费用个人电脑做网站打不开数据库
  • 做网站是比特币的滁州做网站电话号码
  • php网站开发说明怎么样建网站卖东西