Qt v4.8.0,VC2010编译器
我有一个QMainWindow
基础类,我正在尝试向它发送信号,涉及QUuid
但是,每次我运行它时,我都会收到错误:
Object::connect: No such slot MainWindow::on_comp_connected(QUuid) in ..\..\src\mainwindow.cpp:143
Object::connect: (receiver name: 'MainWindow')
它让我如厕,因为插槽确实存在(它在 moc_ 中)
class MainWindow : public QMainWindow
{
Q_OBJECT
// SNIP private typedefs
public:
MainWindow(QWidget *parent = 0, Qt::WFlags flags = 0);
~MainWindow();
// SNIP public methods
signals:
void testSendQuuid(const QUuid &qcid);
public slots:
void on_comp_connected(const QUuid &qcid);
private:
// SNIP private parts
QOpenAcnController *acnInt; // This is where the signal comes from
};
在MainWindow
构造函数的末尾(提到的第 143 行)我有:
connect(acnInt, SIGNAL(callback_comp_connected(QUuid)),
this, SLOT(on_comp_connected(QUuid)));
鉴于插槽肯定存在于 moc_mainwindow.cpp 中(我检查过,它是插槽 #1),到底是什么阻止了连接的发生?
如果我尝试将testSendQuuid(QUuid)
信号连接到插槽,我不会得到这样的信号,也不会得到这样的插槽。
我一生都无法弄清楚为什么 Qt 否认存在一个绝对存在的插槽!