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

怎么做室内设计公司网站给我免费播放片高清在线观看

怎么做室内设计公司网站,给我免费播放片高清在线观看,监控网站模板下载,用什么可以做网站上文列举了qt中线程的几种方法,其中2种方法最为常见。 这两种方法都少不了QThread类,前者继承于QThread类,后者复合QThread类。 本文以实例的方式描述了movetothread()这种线程的方法,将QObject的子类移动…

上文列举了qt中线程的几种方法,其中2种方法最为常见。

这两种方法都少不了QThread类,前者继承于QThread类,后者复合QThread类。

本文以实例的方式描述了movetothread()这种线程的方法,将QObject的子类移动到指定的线程。

一、例子

1. Worker类

1.1Worker类头文件

#ifndef WORKER_H
#define WORKER_H
#include <QObject>
#include<QDebug>
#include <QThread>
class Worker : public QObject  
{
    Q_OBJECT
public:
    explicit Worker(QObject *parent = nullptr);
public slots:

    void doWork(const QString &parameter);
signals:
    void resultReady(const QString &result);
};
#endif // WORKER_H
1.2 Worker类cpp文件

#include "worker.h"
Worker::Worker(QObject *parent)
    : QObject{parent}
{}
void Worker::doWork(const QString &parameter)
{
    // 在这里写入你的线程代码
    qDebug() << "Thread2 is running";
    qDebug() << parameter;//收到的参数
    //一个简单的循环
    for (int i = 0; i < 5; i++)
    {
        QThread::msleep(500); ; // 休眠1秒
        qDebug() << "!!!";
    }
    qDebug() << "end2";
    emit resultReady("======");//发结果
}

2.Controller类

2.1Controller类头文件

#ifndef CONTROLLER_H
#define CONTROLLER_H
#include <QObject>
#include "worker.h"
#include <QThread>
class Controller : public QObject
{
    Q_OBJECT
public:
    explicit Controller(QObject *parent = nullptr);
    QThread workerThread;//复合了QThread类
signals:
    void operate(const QString &parameter);
public slots:
    void handleResult(const QString & str);
};

#endif // CONTROLLER_H

2.2Controller类cpp文件

#include "controller.h"
Controller::Controller(QObject *parent)
    : QObject{parent}
{
    Worker *worker = new Worker;
    worker->moveToThread(&workerThread);
    connect(this, &Controller::operate, worker, &Worker::doWork);
    connect(worker, &Worker::resultReady, this,&Controller::handleResult);
    connect(&workerThread, &QThread::finished, worker, &QObject::deleteLater);
    workerThread.start();

}
void Controller::handleResult(const QString & str)
{
    qDebug()<<str;//取结果
}
 

3.在窗口类的按钮函数里放入

void MainWindow::on_pushButton_xxx_clicked()//你自己的按钮函数
{
    Controller *controller = new Controller();
    controller->operate("parameter");
}

二、优缺点

优点:克服了重写run的缺点,比较灵活简洁,

缺点:但是不能在线程里面实现常驻任务(死循环的任务)。

轻量级的函数可以用movethread,无需创建独立线程类,例如你有多个小函数要在线程内做, 全部扔给一个QThread。还有一开始没使用线程,但是后边发觉这些代码还是放线程比较好,如果用子类化QThread的方法重新设计代码,将会有可能让你把这一段推到重来,这个时候,moveThread的好处就来了,你可以把这段代码的从属着movetothread,把代码移到槽函数,用信号触发它就行了。

http://www.tj-hxxt.cn/news/45791.html

相关文章:

  • 可以做动画的网站深圳seo外包
  • 免费建设游戏对战平台网站口碑营销5t
  • 沈阳网站公司哪个好杭州seo技术
  • 做网站秒杀软件用什么语言好平台外宣推广技巧
  • 曲阜网站建设哪家便宜企业网站模板
  • 网站建设选青岛的公司好不好免费html网页模板
  • 做平面设计的网站广东清远今天疫情实时动态防控
  • 淘宝联盟网站怎么做360免费建站
  • sns社交网站建设好项目推荐平台
  • seo的优缺点长沙seo霜天
  • 个人做旅游网站的意义销售管理系统
  • 交流平台网站怎么做不了自媒体视频剪辑培训班
  • 网站首页怎么制作过程营销型网站建设实训总结
  • wordpress字不能显示图片太原网站制作优化seo公司
  • 苏州在线网站制作网络营销推广方案3篇
  • 网站下面的公安备案怎么做aso关键词排名优化是什么
  • 农业信息中心网站建设自己建网站怎么弄
  • 网页设计需要学什么kseo新方法
  • 国外黄色 网站百度网页版下载安装
  • 网站名称格式电子商务推广方式
  • 网站建设美化谷歌搜索引擎
  • 青岛网站设计软件网站关键词优化怎么弄
  • 网站建设风险管理计划seo主要做哪些工作
  • 刷数据网站怎么推广免费的郑州网络推广服务
  • 翠竹林wordpress主题windows系统优化软件排行榜
  • 长沙网络营销平台排行泰安网站seo
  • 免费网站建站+凡科建站网址大全浏览器下载
  • 开店装修话做那个网站找工人产品网络推广的方法有哪些
  • wordpress 去除底部seo软件开发
  • 台州网站注册 公司企业网站的功能