QT如何在线程类之外触发信号

时间:2018-06-25 10:25:27

标签: multithreading qt triggers signals

我定义了一个线程类,如何在该线程类之外的其他A类中触发信号。 线程类(TestThread.h):

#pragma once
#ifndef TESTTHREAD_H  
#define TESTTHREAD_H  

#include <QThread>  
#include "msg.h"
#include"ConverOSGB.h"
class TestThread : public QThread
{
    Q_OBJECT;
public:
   explicit TestThread(QObject *parent = 0);
protected:
   void run();


 signals:
   //void TestSignal(int);
     void TTestSignal(msg);
 public:
   msg mmsg;
 private slots:
   void showMainmsg(int);

};
#endif // TESTTHREAD_H 

TestThread.cpp:

#include "TestThread.h"
TestThread::TestThread(QObject *parent) :
   QThread(parent)
{
}

void TestThread::run()
{
   Myclass A  =new Myclass()
   A.fun(); // how to  emit signal  in  class  A ?

 }
void TestThread::showMainmsg(int b)
{
    mmsg.int_value = b;
    emit TTestSignal(mmsg);
}

如何在Myclass A.fun中触发信号?

1 个答案:

答案 0 :(得分:0)

您可以在Myclass中创建一个插槽,该线程在线程类发出信号时被触发,从而执行必要的操作。