条件:
①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, "测试"));
}