qt中的多线程

Posted 高傲的monkey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt中的多线程相关的知识,希望对你有一定的参考价值。

1、dialog.h

#define DIALOG_H

#include <QDialog>
#include"mythread.h"
namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
Q_OBJECT

public:
explicit Dialog(QWidget *parent = 0);
~Dialog();

private slots:
void on_pushButton_clicked();

private:
Ui::Dialog *ui;
Mythread *myp;//此处声明了一个继承与pthread的类mythread,相当于创建了一个线程。
};

#endif // DIALOG_H

 

 

 

2.dialog.cpp
#include "dialog.h" #include "ui_dialog.h" Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); } Dialog::~Dialog() { delete ui; } void Dialog::on_pushButton_clicked() { myp = new Mythread(ui->label); myp->start();//自动执行mythread中的run()函数。相当于调用run函数 // QThread aa; // aa.start(); }
3、mythread.h
#ifndef MYTHREAD_H
#define MYTHREAD_H #include <QThread> #include<QLabel> class Mythread : public QThread { public: Mythread(QLabel *l); protected: void run();//声明一个run函数,run为继承下来的一个虚函数 private: QLabel *pp; }; #endif // MYTHREAD_H
#include"mythread.h"
#include <QDebug>
Mythread::Mythread(QLabel *l)//构造函数初始化
{
   pp= l;


}
void Mythread::run()
{

    while(1)
   {
    qDebug()<<"test";
    sleep(1);
    pp->setText("22");
     sleep(1);
    pp->setText("33");
    }
}

 

以上是关于qt中的多线程的主要内容,如果未能解决你的问题,请参考以下文章

Qt学习笔记8.Qt中的多线程

第73课 Qt中的多线程编程

Qt中的多线程编程

Qt中的多线程数据处理管道

纯 C++ 中的多线程?

使用 Qt 的多线程应用程序有啥问题(错误 SIGSEGV)