Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Trouble with signals and slots
Forum Updated to NodeBB v4.3 + New Features

Trouble with signals and slots

Scheduled Pinned Locked Moved Solved General and Desktop
20 Posts 5 Posters 3.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • VRoninV Offline
    VRoninV Offline
    VRonin
    wrote on last edited by VRonin
    #10

    ok, try replacing connect(m_mainButton,&QPushButton::clicked,this,&ImageCorrectButton::selectImageFile); with connect(m_mainButton,&QPushButton::clicked,[]()->void{qDebug("Entered selectImageFile!");}); and see if that works

    "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
    ~Napoleon Bonaparte

    On a crusade to banish setIndexWidget() from the holy land of Qt

    G 1 Reply Last reply
    0
    • VRoninV VRonin

      ok, try replacing connect(m_mainButton,&QPushButton::clicked,this,&ImageCorrectButton::selectImageFile); with connect(m_mainButton,&QPushButton::clicked,[]()->void{qDebug("Entered selectImageFile!");}); and see if that works

      G Offline
      G Offline
      gabor53
      wrote on last edited by
      #11

      @VRonin
      Nothing new happens. "Hangs" at the same location.

      1 Reply Last reply
      0
      • VRoninV Offline
        VRoninV Offline
        VRonin
        wrote on last edited by
        #12

        Nothing gets printed in the debug console?!

        "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
        ~Napoleon Bonaparte

        On a crusade to banish setIndexWidget() from the holy land of Qt

        G 1 Reply Last reply
        0
        • VRoninV VRonin

          Nothing gets printed in the debug console?!

          G Offline
          G Offline
          gabor53
          wrote on last edited by
          #13

          @VRonin
          Entered createEditor
          Entered image editor
          Entered ImageCorrectButton!
          m_mainButton clicked!

          Locals		
          	m_mainButton	@0x12395cc	QPushButton
          	parent	@0x12395f0	QWidget
          	this	@0x123957c	ImageCorrectButton
          

          1 ImageCorrectButton::ImageCorrectButton imagecorrectbutton.cpp 16 0x41e080
          2 myDelegate::createEditor mydelegate.cpp 49 0x41c61a
          3 QAbstractItemViewPrivate::editor qabstractitemview.cpp 4199 0x15154af1
          4 QAbstractItemViewPrivate::openEditor qabstractitemview.cpp 4384 0x15155895
          5 QAbstractItemView::edit qabstractitemview.cpp 2676 0x1514fa8e
          6 QAbstractItemView::mouseDoubleClickEvent qabstractitemview.cpp 1954 0x1514cf86
          7 QWidget::event qwidget.cpp 8789 0x14f26e82
          8 QFrame::event qframe.cpp 550 0x1503c188
          9 QAbstractScrollArea::viewportEvent qabstractscrollarea.cpp 1213 0x150c1a09
          10 QAbstractItemView::viewportEvent qabstractitemview.cpp 1747 0x1514bd6a
          11 QAbstractScrollAreaPrivate::viewportEvent qabstractscrollarea_p.h 111 0x1528ad14
          12 QAbstractScrollAreaFilter::eventFilter qabstractscrollarea_p.h 127 0x15289b35
          13 QCoreApplicationPrivate::sendThroughObjectEventFilters qcoreapplication.cpp 1099 0x1e4ca0e
          14 QApplicationPrivate::notify_helper qapplication.cpp 3795 0x14eefb50
          15 QApplication::notify qapplication.cpp 3273 0x14eed8b8
          16 QCoreApplication::notifyInternal2 qcoreapplication.cpp 988 0x1e4c6e7
          17 QCoreApplication::sendSpontaneousEvent qcoreapplication.h 234 0x1526c865
          18 QApplicationPrivate::sendMouseEvent qapplication.cpp 2769 0x14eec563
          19 QWidgetWindow::handleMouseEvent qwidgetwindow.cpp 617 0x14f3fb2a
          20 QWidgetWindow::event qwidgetwindow.cpp 239 0x14f3e75e
          ... <More>

          1 Reply Last reply
          0
          • VRoninV Offline
            VRoninV Offline
            VRonin
            wrote on last edited by VRonin
            #14

            ok, let's bring out the guns:
            use connect(m_mainButton,&QPushButton::clicked,[]()->void{Q_ASSERT(false);}); this should crash your program (actually assert but stay with me here) as soon as you press m_mainButton

            [Make sure you compile in debug mode and not release]

            "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
            ~Napoleon Bonaparte

            On a crusade to banish setIndexWidget() from the holy land of Qt

            G 1 Reply Last reply
            0
            • VRoninV VRonin

              ok, let's bring out the guns:
              use connect(m_mainButton,&QPushButton::clicked,[]()->void{Q_ASSERT(false);}); this should crash your program (actually assert but stay with me here) as soon as you press m_mainButton

              [Make sure you compile in debug mode and not release]

              G Offline
              G Offline
              gabor53
              wrote on last edited by
              #15

              @VRonin
              Nothing happened. Behaves the same way as before.

              1 Reply Last reply
              0
              • VRoninV Offline
                VRoninV Offline
                VRonin
                wrote on last edited by VRonin
                #16

                shame on me, it was so obvious and I missed it: QPushButton *m_mainButton = new QPushButton("Click to \n &Select Image",parent) ; you are shadowing your member, use m_mainButton = new QPushButton("Click to \n &Select Image",this) ;

                "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                ~Napoleon Bonaparte

                On a crusade to banish setIndexWidget() from the holy land of Qt

                G 1 Reply Last reply
                4
                • VRoninV VRonin

                  shame on me, it was so obvious and I missed it: QPushButton *m_mainButton = new QPushButton("Click to \n &Select Image",parent) ; you are shadowing your member, use m_mainButton = new QPushButton("Click to \n &Select Image",this) ;

                  G Offline
                  G Offline
                  gabor53
                  wrote on last edited by
                  #17

                  @VRonin said in Trouble with signals and slots:

                  m_mainButton = new QPushButton("Click to \n &Select Image",this) ;

                  This is the message I get in output:

                  Entered createEditor
                  Entered image editor
                  Entered ImageCorrectButton!
                  m_mainButton clicked!
                  ASSERT: "false" in file ..\Folkfriends_1_0\imagecorrectbutton.cpp, line 18

                  This application has requested the Runtime to terminate it in an unusual way.
                  Please contact the application's support team for more information.
                  C:\Programming\Projects\build-Folkfriends_1_0-Desktop_Qt_5_7_0_MinGW_32bit-Debug\debug\Folkfriends_1_0.exe exited with code 3

                  1 Reply Last reply
                  0
                  • VRoninV Offline
                    VRoninV Offline
                    VRonin
                    wrote on last edited by
                    #18

                    we found the problem then.
                    you can now go back to connect(m_mainButton,&QPushButton::clicked,this,&ImageCorrectButton::selectImageFile); and it should work

                    "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                    ~Napoleon Bonaparte

                    On a crusade to banish setIndexWidget() from the holy land of Qt

                    G 1 Reply Last reply
                    0
                    • VRoninV VRonin

                      we found the problem then.
                      you can now go back to connect(m_mainButton,&QPushButton::clicked,this,&ImageCorrectButton::selectImageFile); and it should work

                      G Offline
                      G Offline
                      gabor53
                      wrote on last edited by
                      #19

                      @VRonin said in Trouble with signals and slots:

                      connect(m_mainButton,&QPushButton::clicked,this,&ImageCorrectButton::selectImageFile)

                      Thank you. It works now. What was actually wrong with it?

                      jsulmJ 1 Reply Last reply
                      0
                      • G gabor53

                        @VRonin said in Trouble with signals and slots:

                        connect(m_mainButton,&QPushButton::clicked,this,&ImageCorrectButton::selectImageFile)

                        Thank you. It works now. What was actually wrong with it?

                        jsulmJ Offline
                        jsulmJ Offline
                        jsulm
                        Lifetime Qt Champion
                        wrote on last edited by jsulm
                        #20

                        @gabor53 As @VRonin said you created another button with same name as in your class:

                        // m_mainButton is a new local variable with same name as in the class
                        QPushButton *m_mainButton = new QPushButton("Click to \n &Select Image",parent) ;
                        

                        In your class you have

                        QPushButton *m_mainButton;
                        

                        right?
                        But then you create a new one with same name. You just need to remove QPushButton* like this to use m_mainButton from your class:

                        // m_mainButton from the class
                        m_mainButton = new QPushButton("Click to \n &Select Image",parent) ;
                        

                        So, you did the connection with another button (not the one which is visible).

                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                        1 Reply Last reply
                        2

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved