当前位置: 首页 > 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.bjxfkj.com.cn/article/101510.html

相关文章:

  • 移动端网站开发教程搜索引擎有哪些分类
  • 美做天然居家居网站seo免费培训视频
  • 做网站法律条文放心网站推广优化咨询
  • b站24小时免费直播下载网页制作软件下载
  • 怎么给网站做关键词域名注册管理机构
  • 如何用wordpress做一个企业网站和生活app下载安装最新版
  • 绵阳网络公司网站建设刷外链工具
  • 广州网站建设公搜索引擎优化论文
  • 做网站都需要什么资料谷歌广告怎么投放
  • 南通高端网站建设开发网站多少钱
  • 网站建设及维护服务技术指标营销手段有哪些方式
  • 阿里云服务器建立网站网站域名购买
  • 免费建网站平台哪个好免费发布信息平台有哪些
  • ajax数据库网页网站设计seo关键字怎么优化
  • 导购网站建设网站制作代码
  • 自己做网站花钱么百度seo官网
  • 常州公司做网站2023新闻摘抄十条
  • 谁做违法网站长沙有实力的关键词优化价格
  • lovefort表白网站制作创建网站的基本步骤
  • wordpress 钻石 插件北京seo顾问推推蛙
  • 怎么查网站空间百度seo和sem的区别
  • 买一个网站服务器多少钱淘宝关键词查询工具
  • 免费建立手机网站数字营销公司排行榜
  • 网站开发策略推广方案策略怎么写
  • 技术型网站做哪一种好网站空间费用一年多少
  • 重庆建网站搜索快忻科技正规seo一般多少钱
  • 怎样做旅游城市住宿网站如何推广网站链接
  • 宁波 做网站的品牌推广与传播方案
  • 网站建设实验报告总结郑州seo优化外包顾问阿亮
  • 南京网站制作建设百度搜索最多的关键词