Qt v4.8.0, VC2010 compiler
I have a QMainWindow
based class and I'm trying to send it signals involving QUuid
However, every time I run it I get the errors:
Object::connect: No such slot MainWindow::on_comp_connected(QUuid) in ..\..\src\mainwindow.cpp:143
Object::connect: (receiver name: 'MainWindow')
It's driving me potty as the slot definitely does exist (it's in the 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
};
At the end of the MainWindow
constructor (the line 143 mentioned) I have:
connect(acnInt, SIGNAL(callback_comp_connected(QUuid)),
this, SLOT(on_comp_connected(QUuid)));
Given that the slot is definitely there in the moc_mainwindow.cpp (I checked, it's slot #1), what on earth could be stopping the connection happening?
If I try to connect the testSendQuuid(QUuid)
signal to the slot, I get no such signal and no such slot as well.
I cannot for the life of me figure out why Qt is denying the existence of a slot that is most definitely there!
I solved the problem like this
private slots:
void on_comp_connected(const QUuid &qcid);
then in constructor
connect(tabWidget, SIGNAL(currentChanged(int)), this, SLOT(on_comp_connected(QUuid)));
I solved problem by adding Q_OBJECT macro in mainwindow class. In addition to this, also check the sequence in which classes are inherited.
Check whether whether that moc_mainwindow.cpp
is in your Build Path
. Or you are using some other moc_window.cpp file. Because, for ex: In QtCreator, it build the source to a new build directory. And also it uses old moc_cpp file(s) if you try to open the source in a different location.
What I am trying to say is the moc file which you checked may contain those slot definition, but compiler might be using some other moc file which was created earlier.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With