如何从另一个头文件触发插槽

How to trigger slot from another header file

    SettingDialog *s = new SettingDialog();
QObject::connect(SettingsLabelBtn,SettingsLabelBtn->clicked(),s,s->changeSettings());

我有 mainwindow.h 和 settingdialog.h。我想在单击 SettingLabelBtn(它是 QPushButton 对象)时将此事件触发到来自 settingdialog.h 的插槽。

mainwindow class 派生自 QMainWindow 也有 Q_Object 宏 settingdialog class 派生自 QDialog aslo 它有 Q_Object 宏

我的错误是没有匹配的成员函数来调用 'connect'

您的 connect 语法错误 -- 您调用的是成员函数,而不是传递它们各自的地址。尝试...

QObject::connect(SettingsLabelBtn, &QPushButton::clicked, s, &SettingDialog::changeSettings);

另请参阅有关新 signal/slot 语法的 documentation