QTマルチスレッド通信EMIT

ヘッダー:

#ifndefのHEAD_H

#define HEAD_H
の#include <QWidgetの>
する#include <QThread>
の#include <QMessageBox>
の#include <はQApplication>
の#include <QDebug>

クラスMyThread:公共QThread
{
    Q_OBJECT
公共:
    MyThread();
    無効実行();
信号:
    無効送信(QStringのS)。
}、

クラスはMyWidget:公共QWidgetの{
    Q_OBJECTの
公共:
    はMyWidget(QWidgetの*親= 0)。
    〜はMyWidget();
公共スロット:
    ボイドreceiveslot(QStringのS)。
}、
#endifの// HEAD_H



CPP文件ます。#include "head.h"

MyThread :: MyThread()
{
}
ボイドMyThread ::ラン()
{
    一方(TRUE)
    {
    睡眠(5)。
    EMITセンド(「これは息子のスレッドです」);
    qDebug()<< "スレッドが実行されています!"。
    }
// EXEC()。
    QThread ::実行();
}


はMyWidget ::はMyWidget(QWidgetの*親):はQWidget(親)
{

}
はMyWidget ::〜はMyWidget()
{
}
のボイドはMyWidget :: receiveslot(QStringのS)
{
QMessageBox ::情報(0、 "情報"、S);
}


int型のmain(int型のargc、char型* ARGV [])
{
    はQApplication(ARGC、ARGV)。
    wのはMyWidget;
    w.show();
    MyThread * m番目=新しいMyThread。
    QObject :: CONNECT(m番目、SIGNAL(センド(QStringの))、&W、SLOT(receiveslot(QStringの)));
    mth->スタート();
    リターンa.exec();
}

PROファイル:

QT + =コアGUI

演算子:GreaterThan(QT_MAJOR_VERSION、4):QT + =ウィジェット
CONFIG + = C ++ 11

TARGET = untitled35


TEMPLATE =アプリ

SOURCES + = main.cppに

HEADERS + = \
    head.h




公開された12元の記事 ウォンの賞賛6 ビュー20000 +

おすすめ

転載: blog.csdn.net/huaweizte123/article/details/52744507