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;
}
相关推荐
神仙别闹8 小时前
基于QT(C++)实现学本科教务系统(URP系统)
数据库·c++·qt
谁动了我的代码?10 小时前
QT<34> 利用线程池处理耗时任务以及回调函数的使用
开发语言·qt
木心爱编程12 小时前
【Qt 5.14.2 新手实战】QTC++入门筑基——按钮与标签联动:QPushButton + QLabel 实现图片切换器
java·c++·qt
小新11013 小时前
vs2022+Qt插件初体验,创建带 UI 界面的 Qt 项目
开发语言·qt·ui
十五年专注C++开发13 小时前
Qt实现多语言原理和实践详解
开发语言·c++·qt·多语言
神仙别闹15 小时前
基于QT(C++)实现的翻金币游戏
c++·qt·游戏
月上林梢16 小时前
QT圆形加载进度条
数据库·c++·qt·进度条
A0_張張16 小时前
记录一个PDF盖章工具(PyQt5 + PyMuPDF)
开发语言·python·qt·pdf
淼淼76317 小时前
工厂方法模式
开发语言·c++·windows·qt·工厂方法模式
钱彬 (Qian Bin)17 小时前
项目实践11—全球证件智能识别系统(切换为PostgreSQL数据库)
人工智能·qt·fastapi