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

做网站写个人日志移动端排名优化软件

做网站写个人日志,移动端排名优化软件,成都哪家做网站比较好,wordpress后台太慢上文列举了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.ahscrl.com/news/13175.html

相关文章:

  • 网站部分版块显示正在建设品牌推广的步骤和技巧
  • 网站建设方案书 doc小学生摘抄新闻
  • 电子商务网站建设的规划方案seo搜索引擎优化工作内容
  • 网站开发最有效的线下推广方式
  • 网站设计建设 武汉公司seo营销
  • 做网站的公司叫什么名字好搜索引擎论文3000字
  • 国外做任务赚钱的网站成品影视app开发
  • 学院网站建设通知软文广告有哪些
  • wordpress移动端页面优化大师软件下载
  • 玉林住房和城乡规划建设委员会网站2020 惠州seo服务
  • 网站开发入门培训机构seo好seo
  • 国内网站备案腾讯广告投放推广平台
  • 写作网站vir抖音关键词排名推广
  • 网页设计与制作实训总结报告某网站搜索引擎优化
  • 威县建设局网站优化大师app下载安装
  • 遵义网站建设推广培训心得
  • 关于大创做网站的项目计划书口碑营销的方法
  • 乐清网站推广制作今日头条武汉最新消息
  • 网站建设干货b站24小时自助下单平台网站
  • 上海红蚂蚁装潢设计有限公司官网江门seo网站推广
  • 北京公司招聘整站优化seo
  • 官方网站优化价格知名网页设计公司
  • 企业型网站网址公司怎么建立自己的网站
  • 交流平台网站怎么做seo排名关键词搜索结果
  • 平台公司融资的主要方式余姚seo智能优化
  • 小型公司建网站网络推广专员所需知识
  • 建筑公司网站宣传建筑工地文案范文图片如何提交百度收录
  • 动力 网站建设今日头条最新消息
  • 橙子建站验证码是什么东西seo排名点击软件推荐
  • .xyz做网站怎么样优化怎么做