窗口 class 头文件是这么写的:
Q_DECLARE_METATYPE(std::string) class A: public QMainWindow { Q_OBJECT A() { qRegisterMetaType<std::string>("std::string"); QObject::connect( this, SIGNAL(tunnel::add_item_into_table_signal(std::string, std::string, std::string)), this, SLOT(tunnel::add_item_into_table(std::string, std::string, std::string)) ); } signals: // 这个函数的实现是由 Qmake 生成的,我能调试单步步进进去,看到实现里的代码跑到了 void add_item_into_table_signal(std::string ip, std::string port, std::string remark); public slots: void add_item_into_table(std::string ip, std::string port, std::string remark) { DebugBreak(); // 这里跑不到 } } 已经搞了一天了,我 emit 其他没有参数的信号函数都能跑到 slots,但是这个传了参数的函数就是跑不到 slots。
