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.
  • 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

                      17/17

                      7 Nov 2021, 07:26

                      • Login

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