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. how do something on a window before the user open that window?
Qt 6.11 is out! See what's new in the release blog

how do something on a window before the user open that window?

Scheduled Pinned Locked Moved Solved General and Desktop
35 Posts 5 Posters 6.5k 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.
  • ? Offline
    ? Offline
    A Former User
    wrote on last edited by
    #7

    @6thC yes i understand you,
    but the problem is there is no events related with the window opening
    and doAll() must execute in the window opening before any thing else
    i think that qt have it own methods on opening the windows or showing it

    1 Reply Last reply
    0
    • 6thC6 Offline
      6thC6 Offline
      6thC
      wrote on last edited by
      #8

      did you go to http://doc.qt.io/qt-5/qwidget.html#visible-prop ?

      "See also show(), hide(), isHidden(), isVisibleTo(), isMinimized(), showEvent(), and hideEvent()."

      There's a number of events that may be suitable. I cannot tell from just this definition - could you just use a fresh editUsers instance? I'm sure there's a way to hook this.

      What about http://doc.qt.io/qt-5/qdialog.html#showEvent

      1 Reply Last reply
      2
      • ? Offline
        ? Offline
        A Former User
        wrote on last edited by A Former User
        #9

        @6thC thank a lot,
        0_1534415349311_f773974e-c947-403e-b6e5-344c612e8b8e-image.png
        it worked

        JonBJ 1 Reply Last reply
        1
        • ? A Former User

          @6thC thank a lot,
          0_1534415349311_f773974e-c947-403e-b6e5-344c612e8b8e-image.png
          it worked

          JonBJ Offline
          JonBJ Offline
          JonB
          wrote on last edited by JonB
          #10

          @davidlabib
          You will have read http://doc.qt.io/qt-5/qwidget.html#showEvent & http://doc.qt.io/qt-5/qshowevent.html by now I presume. So just checking you are happy that your doAll(false); will be executed when, say, the window is minimized and then restored? Not just when the user shows the window. So, for example, if your doAll(false) resets widget visibility you will get that on minimize + restore too.

          ? 1 Reply Last reply
          0
          • JonBJ JonB

            @davidlabib
            You will have read http://doc.qt.io/qt-5/qwidget.html#showEvent & http://doc.qt.io/qt-5/qshowevent.html by now I presume. So just checking you are happy that your doAll(false); will be executed when, say, the window is minimized and then restored? Not just when the user shows the window. So, for example, if your doAll(false) resets widget visibility you will get that on minimize + restore too.

            ? Offline
            ? Offline
            A Former User
            wrote on last edited by
            #11

            @JonB 1. I don't understand you , please explain

            JonBJ 1 Reply Last reply
            0
            • ? A Former User

              @JonB 1. I don't understand you , please explain

              JonBJ Offline
              JonBJ Offline
              JonB
              wrote on last edited by
              #12

              @davidlabib
              I have explained in the clearest language possible, I cannot think of another way to phrase it.

              ? 1 Reply Last reply
              0
              • JonBJ JonB

                @davidlabib
                I have explained in the clearest language possible, I cannot think of another way to phrase it.

                ? Offline
                ? Offline
                A Former User
                wrote on last edited by
                #13

                @JonB do you say that in this way if the user minimized the window and then restored it
                it will execute doAll(false) or the reverse ?

                JonBJ 1 Reply Last reply
                0
                • ? A Former User

                  @JonB do you say that in this way if the user minimized the window and then restored it
                  it will execute doAll(false) or the reverse ?

                  JonBJ Offline
                  JonBJ Offline
                  JonB
                  wrote on last edited by
                  #14

                  @davidlabib
                  I wrote:

                  So just checking you are happy that your doAll(false); will be executed when, say, the window is minimized and then restored?

                  How can I explain that more clearly? If the user minimizes your window and then restores it (makes it visible again) showEvent() will be called. And as you have written it that means it will call your doAll(false). Why don't you try it on minimizing and then restoring your window?

                  I don't know what your doAll(false) does. Maybe it wants to do that, maybe it does not.

                  1 Reply Last reply
                  0
                  • ? Offline
                    ? Offline
                    A Former User
                    wrote on last edited by A Former User
                    #15

                    @JonB now I understand you ,
                    I'm sorry for stupidity ,but english is not my tongue
                    I'm using dialog not Mainwondow that's why i didn't try to minimizing and then restoring the window

                    JonBJ 1 Reply Last reply
                    0
                    • ? A Former User

                      @JonB now I understand you ,
                      I'm sorry for stupidity ,but english is not my tongue
                      I'm using dialog not Mainwondow that's why i didn't try to minimizing and then restoring the window

                      JonBJ Offline
                      JonBJ Offline
                      JonB
                      wrote on last edited by
                      #16

                      @davidlabib
                      I realise about the English, not a problem, I just did not know how to phrase it any better.

                      Just check: when the dialog is up, got to your desktop's toolbar (or whatever) and see if you can minimize/restore from there (e.g. Windows allows click on toolbar icon to toggle minimize/restore). If it lets you do that while dialog is showing, see whether your showEvent() in the dialog gets called? If not, you are probably good to go.

                      1 Reply Last reply
                      0
                      • ? Offline
                        ? Offline
                        A Former User
                        wrote on last edited by
                        #17

                        @JonB you are right
                        when i minimize and restore it execute doAll(false)
                        is there is another event work when the window opens but not sensitive about minimizing and restoring?

                        mrjjM JonBJ 2 Replies Last reply
                        0
                        • ? A Former User

                          @JonB you are right
                          when i minimize and restore it execute doAll(false)
                          is there is another event work when the window opens but not sensitive about minimizing and restoring?

                          mrjjM Offline
                          mrjjM Offline
                          mrjj
                          Lifetime Qt Champion
                          wrote on last edited by
                          #18

                          @davidlabib
                          Hi
                          Do it in constructor as you show - should call it only once and
                          then not again on show /minimize etc.
                          But normally you create a Dialog show it and delete it
                          so constructor is called every time and hence it should be exactly like u want.

                          So please show the code where you pop up the editUser Dialog.

                          1 Reply Last reply
                          1
                          • ? A Former User

                            @JonB you are right
                            when i minimize and restore it execute doAll(false)
                            is there is another event work when the window opens but not sensitive about minimizing and restoring?

                            JonBJ Offline
                            JonBJ Offline
                            JonB
                            wrote on last edited by
                            #19

                            @davidlabib
                            We can look into the minimize/restore if we need to. However for now you should answer @mrjj's comment. Why are you re-showing the dialog? Are you keeping it in existence permanently and hiding/showing it (in which case, why?), or do you destroy and re-create it, in which case you could do your code in constructor instead?

                            1 Reply Last reply
                            1
                            • ? Offline
                              ? Offline
                              A Former User
                              wrote on last edited by
                              #20

                              @mrjj @JonB
                              this is my dialog
                              0_1534424096209_336e2a13-d316-471c-8b82-b5c8b2f80d91-image.png

                              this is doAll()
                              0_1534424167621_f244dbec-bdff-46a1-b9a4-1582fd9e8325-image.png

                              it suppose to execute doall(true) when admin password is right .OK?
                              so doAll must be false when the window shows
                              so the user will be have to fill admin password

                              JonBJ 1 Reply Last reply
                              0
                              • ? A Former User

                                @mrjj @JonB
                                this is my dialog
                                0_1534424096209_336e2a13-d316-471c-8b82-b5c8b2f80d91-image.png

                                this is doAll()
                                0_1534424167621_f244dbec-bdff-46a1-b9a4-1582fd9e8325-image.png

                                it suppose to execute doall(true) when admin password is right .OK?
                                so doAll must be false when the window shows
                                so the user will be have to fill admin password

                                JonBJ Offline
                                JonBJ Offline
                                JonB
                                wrote on last edited by JonB
                                #21

                                @davidlabib
                                I think you're saying you want all the other other widgets to be enabled/disabled depending on whether Admin Password has or has not been filled in correctly? Or according as it has something/nothing already in it?

                                If that is the case you will want to disable/enable as user types into Admin Password? So you will also want to call this during input to that widget? Do you also (sometimes) put something into Admin Password when you display the dialog?

                                All in all, why do you only seem to want to call doAll() when window is shown? And you need to answer @mrjj's question: Yes, we can see your dialog, but that does not tell us whether you keep it in existence after showing it or whether you destroy it and construct from scratch?

                                I'll give you one tip. I have code which must only be executed the first time a window/dialog is shown, not before then (construction time is too early) and not after then. So my code for showEvent() is like (I don't use C++):

                                classMemberVarialbeFirstShown = false;
                                
                                showEvent()
                                {
                                    if not classMemberVarialbeFirstShown
                                        doFirstImeStuff();
                                    classMemberVarialbeFirstShown = true;
                                }
                                
                                1 Reply Last reply
                                2
                                • ? Offline
                                  ? Offline
                                  A Former User
                                  wrote on last edited by
                                  #22

                                  @mrjj no , i don't have to keep it in existence
                                  i don't mind destroying and re-creating it

                                  mrjjM JonBJ 2 Replies Last reply
                                  0
                                  • ? A Former User

                                    @mrjj no , i don't have to keep it in existence
                                    i don't mind destroying and re-creating it

                                    mrjjM Offline
                                    mrjjM Offline
                                    mrjj
                                    Lifetime Qt Champion
                                    wrote on last edited by
                                    #23

                                    @davidlabib
                                    Ok so im not sure what its not working for you
                                    If you call doAll(false) in constructor
                                    then when Dialog is shown they should all be disabled.
                                    Is that not the case?

                                    1 Reply Last reply
                                    1
                                    • ? A Former User

                                      @mrjj no , i don't have to keep it in existence
                                      i don't mind destroying and re-creating it

                                      JonBJ Offline
                                      JonBJ Offline
                                      JonB
                                      wrote on last edited by
                                      #24

                                      @davidlabib
                                      Then you could follow @mrjj's advice to just do your work in the constructor and not worry about show events.

                                      But you really need to explain precisely when you want those widgets to change between enabled & disabled, because I for one don't know what you intend.

                                      1 Reply Last reply
                                      1
                                      • ? Offline
                                        ? Offline
                                        A Former User
                                        wrote on last edited by
                                        #25

                                        the default is disabled
                                        but when the user input admin password correct it will enabled the widgets
                                        my problem is to make the widgets disabled by default
                                        if i put doAll(false) in the constructor when soneone fill admin password correct it will enable
                                        but if the user closed editUser and open it again it will be enabled without admin password filling

                                        JonBJ 1 Reply Last reply
                                        0
                                        • ? A Former User

                                          the default is disabled
                                          but when the user input admin password correct it will enabled the widgets
                                          my problem is to make the widgets disabled by default
                                          if i put doAll(false) in the constructor when soneone fill admin password correct it will enable
                                          but if the user closed editUser and open it again it will be enabled without admin password filling

                                          JonBJ Offline
                                          JonBJ Offline
                                          JonB
                                          wrote on last edited by
                                          #26

                                          @davidlabib

                                          but when the user input admin password correct it will enabled the widgets

                                          When? Do you re-verify the password as he types each character into the line edit?

                                          my problem is to make the widgets disabled by default

                                          Put the disablement into the constructor.

                                          if i put doAll(false) in the constructor when soneone fill admin password correct it will enable

                                          It will not enable unless you tell it to.

                                          but if the user closed editUser and open it again it will be enabled without admin password filling

                                          That is the bit where @mrjj was suggesting you destroy the dialog after using it, and re-create a new one each time it's wanted. Then there is no "open again" from wherever it got to, you always start afresh in the constructor.

                                          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