您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页QT多线程简单例子

QT多线程简单例子

来源:抵帆知识网
QT多线程简单例⼦

在Qt中实现多线程,除了使⽤全局变量。还可以使⽤信号/槽机制。以下例⼦使⽤信号/槽机制。

功能: 在主线程A界⾯上点击按钮,然后对应开起⼀个线程B。线程B往线程A发送⼀个字符串,线程A打印出来。1、⼯程⽂件⽬录

2、thread.h 和thread.cpp

#ifndef THREAD_H#define THREAD_H#include#include

class Thread : public QThread{

Q_OBJECTpublic:

Thread();

virtual void run(); void stop();signals:

void send(QString msg);private: };

#endif // THREAD_H

#include \"thread.h\"

Thread::Thread(){ }

void Thread::run(){

//发送⼀个信号给主线程

emit send(QString(\"thread\"));}

3、widget.h和widget.cpp

#ifndef WIDGET_H#define WIDGET_H

#include #include\"thread.h\"

namespace Ui {class Widget;

}

class Widget : public QWidget{

Q_OBJECT

public:

explicit Widget(QWidget *parent = 0); ~Widget();

void text();public slots:

void accept(QString msg);

private slots:

void on_pushButton_clicked();

private:

Ui::Widget *ui; Thread thread;};

#endif // WIDGET_H

#include \"widget.h\"#include \"ui_widget.h\"#include

Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){

ui->setupUi(this);

QObject::connect(&thread, SIGNAL(send(QString)), this, SLOT(accept(QString))); // thread.start();}

Widget::~Widget(){

delete ui;}

void Widget::accept(QString msg){

qDebug()<void Widget::on_pushButton_clicked(){

thread.start();}

4、主函数

#include \"widget.h\"

#include

int main(int argc, char *argv[]){

QApplication a(argc, argv); Widget w; w.show();

return a.exec();}

转⾃:https://blog.csdn.net/qq_33850438/article/details/78482935

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务