Error Connecting timer to slot <RESOLVED>



  • I am trying to connect to a slot with a timer. The line where I attempt to make the connection is:
    connect(m_trigPullTimer, SIGNAL(timeout()), this, SLOT(updateFiringReload()));

    In the header file I have the following:
    private slots:
    void updateFiringReload();

    When I run the program and it hits the connect line I get the following error.
    QObject::connect: No such slot QWidget::updateFiringReload()

    Where am I going wrong?



  • is updateFiringReload defined in "this" class??

    seems that this is a QWidget



  • @Bear35645 Hi, you created the class definition with the according slots: line in the same class and inserted the Q_OBJECT macro?
    Example:

    #ifndef __main_hpp
    #define __main_hpp
    
    #include <QDebug>
    #include <QTimer>
    #include <QCoreApplication>
    
    class TimerTest : public QObject {
      Q_OBJECT
    
      public:
        TimerTest();
      
      private:
        QTimer *t;
    
      public slots:
        void updateFiringReload();
    };
    
    #endif
    

    and the implementation:

    #include "main.hpp"
    
    int main( int argc, char *argv[] ) {
      QCoreApplication app(argc, argv);
      TimerTest t;
      return app.exec();
    }
    
    TimerTest::TimerTest() {
      t = new QTimer(this);
      connect( t, SIGNAL(timeout()), this, SLOT(updateFiringReload()) );
    
      t->start(1000);
    }
    
    void TimerTest::updateFiringReload() {
      qDebug() << "Test";
    }
    


  • @mcosta Yes it is defined in the class. The class is derived from QWidget.



  • @simow I did forget the Q_OBJECT macro. However now when I attempt to compile I am getting an error C:\Users\kbrooks\Work\MAST\r2coverlays.cpp:12: error: undefined reference to `vtable for R2COverlays' on my constructor.



  • @Bear35645 One complete rebuild, please using make -B.



  • @simow Thank you Sir. You have been a great help.



  • @Bear35645 You are welcome. Any time again. :)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.