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. Help with QWidget::show()
Forum Updated to NodeBB v4.3 + New Features

Help with QWidget::show()

Scheduled Pinned Locked Moved Solved General and Desktop
showeventshow
17 Posts 5 Posters 5.1k Views 3 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.
  • C Offline
    C Offline
    Christian Ehrlicher
    Lifetime Qt Champion
    wrote on 6 Nov 2021, 19:24 last edited by
    #2

    @mmikeinsantarosa said in Help with QWidget::show():

    void ChartProperties::showEvent(QShowEvent *ev)
    complains about an extra member showevent.

    What exact error message do you get?

    Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
    Visit the Qt Academy at https://academy.qt.io/catalog

    1 Reply Last reply
    0
    • M Offline
      M Offline
      mmikeinsantarosa
      wrote on 6 Nov 2021, 19:27 last edited by
      #3

      @Christian-Ehrlicher said in Help with QWidget::show():

      void ChartProperties::showEvent(QShowEvent *ev)

      I get "extra qualification on member 'showEvent'"

      1 Reply Last reply
      0
      • M Offline
        M Offline
        mmikeinsantarosa
        wrote on 6 Nov 2021, 19:28 last edited by
        #4

        And the widget is actually a "QDialog".

        1 Reply Last reply
        0
        • C Offline
          C Offline
          Christian Ehrlicher
          Lifetime Qt Champion
          wrote on 6 Nov 2021, 19:30 last edited by
          #5

          And please show how you defined and declared this function.

          Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
          Visit the Qt Academy at https://academy.qt.io/catalog

          1 Reply Last reply
          0
          • M Offline
            M Offline
            mmikeinsantarosa
            wrote on 6 Nov 2021, 19:34 last edited by
            #6

            Realizing that the class is actually a QDialog so I just changed the declaration to
            virtual void showEvent(QShowEvent *event) override;
            and it doesn't complain now.

            So now, how do I hook it up to execute another function?
            Right clicking on it and selecting refactor doesn't provide a way to create a function in my source. Do I need to create a slot to connect it to?

            1 Reply Last reply
            0
            • C Offline
              C Offline
              Christian Ehrlicher
              Lifetime Qt Champion
              wrote on 6 Nov 2021, 19:36 last edited by
              #7

              @mmikeinsantarosa said in Help with QWidget::show():

              So now, how do I hook it up to execute another function?

              I don't understand this question. Simply create a function in your class and call it from within your other function.

              Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
              Visit the Qt Academy at https://academy.qt.io/catalog

              1 Reply Last reply
              0
              • M Offline
                M Offline
                mmikeinsantarosa
                wrote on 6 Nov 2021, 19:43 last edited by mmikeinsantarosa 11 Jun 2021, 19:43
                #8

                Sorry, I'm feeling pretty dumb here.

                Another class executes the ChartProperties->Show() method and when the dialog is rendered, I want to trap the ChartProperties show() event.
                I have irtual void showEvent(QShowEvent *event) override;
                in my ChartProperties header but I don't understand how to receive the showEvent..

                S 1 Reply Last reply 6 Nov 2021, 19:58
                0
                • C Offline
                  C Offline
                  Christian Ehrlicher
                  Lifetime Qt Champion
                  wrote on 6 Nov 2021, 19:47 last edited by
                  #9

                  As explained in the documentation this function is called when the widget is shown, you must not call it by yourself.

                  Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                  Visit the Qt Academy at https://academy.qt.io/catalog

                  1 Reply Last reply
                  0
                  • M mmikeinsantarosa
                    6 Nov 2021, 19:43

                    Sorry, I'm feeling pretty dumb here.

                    Another class executes the ChartProperties->Show() method and when the dialog is rendered, I want to trap the ChartProperties show() event.
                    I have irtual void showEvent(QShowEvent *event) override;
                    in my ChartProperties header but I don't understand how to receive the showEvent..

                    S Offline
                    S Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on 6 Nov 2021, 19:58 last edited by
                    #10

                    Hi,

                    @mmikeinsantarosa said in Help with QWidget::show():

                    I have irtual void showEvent(QShowEvent *event) override;

                    This is just a declaration, you still have to implement the function itself.

                    Interested in AI ? www.idiap.ch
                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      mmikeinsantarosa
                      wrote on 6 Nov 2021, 20:03 last edited by
                      #11

                      Do I create a slot then connect this event to my slot?

                      M 1 Reply Last reply 6 Nov 2021, 20:16
                      0
                      • C Offline
                        C Offline
                        Christian Ehrlicher
                        Lifetime Qt Champion
                        wrote on 6 Nov 2021, 20:05 last edited by
                        #12

                        @mmikeinsantarosa said in Help with QWidget::show():

                        Do I create a slot then connect this event to my slot?

                        What slot? showEvent() is a class function, not a slot. Please learn C++ basics first.

                        Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                        Visit the Qt Academy at https://academy.qt.io/catalog

                        1 Reply Last reply
                        1
                        • M mmikeinsantarosa
                          6 Nov 2021, 20:03

                          Do I create a slot then connect this event to my slot?

                          M Offline
                          M Offline
                          mpergand
                          wrote on 6 Nov 2021, 20:16 last edited by mpergand 11 Jun 2021, 20:17
                          #13

                          @mmikeinsantarosa

                          Your question seems pretty close this this one

                          As an alternative, you can simply do:

                          MyDialog::show()
                          {
                            myFunction();
                            QDialog::show();
                          }
                          

                          Using showEvent is dangerous cause it can be called multi times !

                          1 Reply Last reply
                          0
                          • M Offline
                            M Offline
                            mmikeinsantarosa
                            wrote on 6 Nov 2021, 20:19 last edited by
                            #14

                            The method name is "showEvent" which leads me to think it's a signal. It's also listed in the signals list in the documentation for QDialog so I thought it might actually be a signal.

                            thanks for clearing this up SGaist.

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              SGaist
                              Lifetime Qt Champion
                              wrote on 6 Nov 2021, 20:24 last edited by
                              #15

                              @mmikeinsantarosa said in Help with QWidget::show():

                              It's also listed in the signals list in the documentation for QDialog

                              That's wrong, neither in the Qt 5 nor in the Qt 6 documentation.

                              It is listed under Reimplemented Protected Functions.

                              Beside that, signals name do not finish in "event". They usually have a name in relation to some action like rejected in QDialog.

                              Interested in AI ? www.idiap.ch
                              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                              1 Reply Last reply
                              1
                              • M Offline
                                M Offline
                                mmikeinsantarosa
                                wrote on 6 Nov 2021, 22:37 last edited by
                                #16

                                I stand corrected. entering QDialog in the Qt help and selecting signals reveals signals at the top, with 3 items under it then Reimplemented Protected Functions where the showEvent function is listed.

                                J 1 Reply Last reply 7 Nov 2021, 07:26
                                0
                                • M mmikeinsantarosa
                                  6 Nov 2021, 22:37

                                  I stand corrected. entering QDialog in the Qt help and selecting signals reveals signals at the top, with 3 items under it then Reimplemented Protected Functions where the showEvent function is listed.

                                  J Offline
                                  J Offline
                                  JonB
                                  wrote on 7 Nov 2021, 07:26 last edited by
                                  #17

                                  @mmikeinsantarosa
                                  Indeed, that is how Qt documentation lays out its methods.

                                  To reiterate something @Christian-Ehrlicher said. In Qt nomenclature:

                                  • Methods ending in Event (showEvent(), mouseMoveEvent()) are not signals. Instead they are protected virtual methods. You must sub-class and override if you want to access them.

                                  • Signals tend to be named as the past tense of something that has happened (clicked(), customContextMenuRequested()). You cannot override them. You can connect() to them, without needing to sub-class.

                                  • And slots are just named as an action to be performed (show(), setDiabled()).

                                  1 Reply Last reply
                                  1

                                  11/17

                                  6 Nov 2021, 20:03

                                  • Login

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