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, "测试"));
}


猜你喜欢

转载自blog.csdn.net/u011394598/article/details/80248991