1. 程式人生 > >Qt如何將訊息在2個沒有關係的類中從一個類傳送到另一個類中

Qt如何將訊息在2個沒有關係的類中從一個類傳送到另一個類中

條件:

①2個類直接沒有任何關係;

②接收訊息的類必須有一個全域性變數;

 QMetaObject::invokeMethod((QObject*)全域性變數類, "接收的方法", Qt::AutoConnection, Q_ARG(接收的引數型別, 接收的引數));

class ViewManagerA : public QMainWindow
{
    Q_OBJECT   
public:
    ViewManagerA(QWidget *parent = 0);
    ~ViewManagerA();
private slots:
    //介面點選事件處理
    void receiveMsg(QString msg);
}


ViewManager *g_viewManagerA;

extern ViewManager *g_viewManagerA;
class ViewManagerB : public QObject
{
    Q_OBJECT   
public:
    ViewManagerB(QWidget *parent = 0);
    ~ViewManagerB();
 private:
    void sendMsg();
}



 
void ViewManagerB::sendMsg()
{
   QMetaObject::invokeMethod((QObject*)g_viewManagerA, "receiveMsg", Qt::AutoConnection, Q_ARG(QString, "測試"));
}