qt使用moveToThread,开启线程。demo模版

cpp 复制代码
#ifndef THREAD_H
#define THREAD_H

#include <QObject>

class Thread :public QObject
{
    Q_OBJECT
public:
    Thread();
    ~Thread();
    void Thread_Fun(void);
};

#endif // THREAD_H
cpp 复制代码
#include "outputlogthread.h"
#include <QDebug>
#include <QThread>
Thread::Thread()
{
    qDebug()<<"Thread构造函数ID:"<<QThread::currentThreadId();
}

Thread::~Thread()
{

}

void Thread::Thread_Fun()
{
    qDebug()<<"子线程功能函数ID:"<<QThread::currentThreadId();
}

主线程

cpp 复制代码
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include"outputlogthread.h"

QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();


signals:
    void ToThread(); // 信号
public:
    QThread *Thread_Test;
    Thread *thread_class;
private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
cpp 复制代码
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QThread>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    Thread_Test = new QThread;
    thread_class = new Thread;
    connect(this,&MainWindow::ToThread,thread_class,&Thread::Thread_Fun);
    thread_class->moveToThread(Thread_Test);
    //下面两个是一样的,都可以调用
    Thread_Test->start();
    // emit ToThread();


}

MainWindow::~MainWindow()
{
    delete ui;
}
相关推荐
charlie1145141916 小时前
设计自己的小传输协议 导论与概念
c++·笔记·qt·网络协议·设计·通信协议
程序员编程指南9 小时前
Qt 并行计算框架与应用
c语言·数据库·c++·qt·系统架构
程序员编程指南11 小时前
Qt 多线程调试技巧与常见问题
c语言·开发语言·c++·qt
qq_4298796713 小时前
qt webengine播放视频
开发语言·qt·音视频
赤鸢QAQ14 小时前
Qt小组件 - 9 时间卡片
开发语言·数据库·qt
galaxy_strive15 小时前
qt c++借助开源的.pro工程文件解读.pro文件中的各项配置的含义
c++·qt
小徐不徐说15 小时前
RTSP协议详解与C++实现实例
开发语言·c++·qt·通信·rtsp
菜鸟看点16 小时前
QFutureWatcher 收不到 finished 信号-QFutureWatcher 与对象生命周期
qt
鬼魅-952719 小时前
VS+Qt中使用QCustomPlot绘制曲线标签(附源码)
c++·qt
奇树谦21 小时前
Qt|槽函数耗时操作阻塞主界面问题
开发语言·qt