// 子线程 .H
#ifndef MESSAGE_H
#define MESSAGE_H
#include <QThread>
#include <QString>
class Message : public QThread
{
Q_OBJECT
public:
Message();
public:
void stop();
protected:
void run();
public:
Cgo *cgo;
// 这里,声明一个信号
signals:
void send_message_signal(const QString &);
public slots:
private:
volatile bool stopped;
};
#endif // MESSAGE_H
// 子线程 .CPP
#include <QMessageBox>
#include <QDebug>
#include "message.h"
Message::Message()
{
stopped = false;
}
void Message::run()
{
// 发送信号到主线程
emit send_message_signal(command);
}
void Message::stop()
{
stopped = true;
}
// 主线程 .H
// 这里,声明一个槽
private slots:
void on_message_signal(const QString &);
// 主线程 .CPP
// 构造, 初始化线程
Message *message = new Message();
// 这里,将信号与槽建立连接
connect(message, SIGNAL(send_message_signal(const QString&)), this, SLOT(on_message_signal(const QString&)));
// 启动线程
message->start();
// 接收,信号发来的数据
void Examples::on_message_signal(const QString &_message)
{
QMessageBox::information(this, tr("提示"), tr(_message.toLatin1().data()), QMessageBox::Yes);
}
近期评论