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. Can't get my widget to auto-resize...
Forum Updated to NodeBB v4.3 + New Features

Can't get my widget to auto-resize...

Scheduled Pinned Locked Moved Solved General and Desktop
22 Posts 5 Posters 29.0k Views 5 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.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #7

    Hi,

    Are you sure the internal widgets are put in a layout that was applied to the edited widget ?

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

    mzimmersM 1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #8

      @Wieland: no need to call setLayout if you passed the widget as parent at layout creation time it will be assigned automatically..

      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
      • SGaistS SGaist

        Hi,

        Are you sure the internal widgets are put in a layout that was applied to the edited widget ?

        mzimmersM Offline
        mzimmersM Offline
        mzimmers
        wrote on last edited by
        #9

        @SGaist I believe so. All my widgets were created in Designer (no programmatic stuff). Here's the structure:
        0_1507233048765_resize.PNG

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #10

          It looks like groupBoxSecurity and groupBoxUserPwd are not in a layout.

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

          mzimmersM 1 Reply Last reply
          2
          • SGaistS SGaist

            It looks like groupBoxSecurity and groupBoxUserPwd are not in a layout.

            mzimmersM Offline
            mzimmersM Offline
            mzimmers
            wrote on last edited by
            #11

            @SGaist you're right; they aren't.

            So, so I infer correctly that in order for resizing to occur, all widgets must be in a layout?

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #12

              If you want that everything be resized automatically, then yes. Otherwise you would need to re-implemt the resize event and then do all the sizing by hand.

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

              mzimmersM 1 Reply Last reply
              0
              • SGaistS SGaist

                If you want that everything be resized automatically, then yes. Otherwise you would need to re-implemt the resize event and then do all the sizing by hand.

                mzimmersM Offline
                mzimmersM Offline
                mzimmers
                wrote on last edited by
                #13

                @SGaist OK, but I don't want everything to resize; just a few items (really, just the QPlainTextEdit widget).

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

                  I bet you already know this:

                  1 Reply Last reply
                  0
                  • SGaistS Offline
                    SGaistS Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on last edited by
                    #15

                    That should be achievable, Try playing with the stretch factor.

                    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
                    • mzimmersM Offline
                      mzimmersM Offline
                      mzimmers
                      wrote on last edited by
                      #16

                      I'll do some more experimentation. In general, is it better to build nested layouts from the outside in, or from the inside out?

                      This app I'm writing appears as though it's going to need several layouts to present correctly.

                      1 Reply Last reply
                      0
                      • mzimmersM Offline
                        mzimmersM Offline
                        mzimmers
                        wrote on last edited by
                        #17

                        OK, I'm obviously doing something wrong. Various experiments didn't work, so I put a (single) layout around every child widget in my display. Still no resizing. What am I overlooking?

                        kshegunovK 1 Reply Last reply
                        0
                        • mzimmersM mzimmers

                          OK, I'm obviously doing something wrong. Various experiments didn't work, so I put a (single) layout around every child widget in my display. Still no resizing. What am I overlooking?

                          kshegunovK Offline
                          kshegunovK Offline
                          kshegunov
                          Moderators
                          wrote on last edited by
                          #18

                          Take a screenshot (and make sure the object tree on the right is visible) so we can see what's going on.

                          Read and abide by the Qt Code of Conduct

                          1 Reply Last reply
                          0
                          • mzimmersM Offline
                            mzimmersM Offline
                            mzimmers
                            wrote on last edited by
                            #19

                            OK, I just got another data point, though I'm not sure what it means. So, this is my UI without any layouts applied:
                            0_1507320128864_no_layout.PNG
                            This does not do any resizing, nor would I expect it to.

                            This is my UI with a grid layout applied to all child objects:
                            0_1507320164793_child_layout.PNG

                            This does not do any resizing; I thought that it would.

                            This (the new data point) is with a grid applied to the main widget itself (oddly doesn't show up in the tree):
                            0_1507320239217_all_layout.PNG

                            This does resize.

                            So, in short...I have no clue at all what I'm doing here. And I haven't even touched on the topic that the layouts are screwing up my UI. (This I presume can be fixed by nested layouts?)

                            Thanks...

                            kshegunovK 1 Reply Last reply
                            0
                            • mzimmersM mzimmers

                              OK, I just got another data point, though I'm not sure what it means. So, this is my UI without any layouts applied:
                              0_1507320128864_no_layout.PNG
                              This does not do any resizing, nor would I expect it to.

                              This is my UI with a grid layout applied to all child objects:
                              0_1507320164793_child_layout.PNG

                              This does not do any resizing; I thought that it would.

                              This (the new data point) is with a grid applied to the main widget itself (oddly doesn't show up in the tree):
                              0_1507320239217_all_layout.PNG

                              This does resize.

                              So, in short...I have no clue at all what I'm doing here. And I haven't even touched on the topic that the layouts are screwing up my UI. (This I presume can be fixed by nested layouts?)

                              Thanks...

                              kshegunovK Offline
                              kshegunovK Offline
                              kshegunov
                              Moderators
                              wrote on last edited by kshegunov
                              #20

                              The last one looks good (almost no problems). You have to set layouts to your group boxes too and everything will be resizing. Also bear in mind you don't really need a grid layout for the top widget, vertical one (with 2 items) should do just fine.

                              Edit.
                              Actually I took a closer look. I'd put the two groups in a nested horizontal layout, the dropdown with buttons in a vertical one. The vertical one and the text area in a horizontal one and set the root widget's layout to vertical.

                              You can judge if there's a layout attached to the widget by looking at the object tree - the red crossed circle means there's no layout. Otherwise the assigned layout is shown as an icon. The child objects you see in the tree will be ordered according to the set layout. In practice using a nested layout isn't very often needed, only occasionally.

                              Read and abide by the Qt Code of Conduct

                              mzimmersM 1 Reply Last reply
                              1
                              • kshegunovK kshegunov

                                The last one looks good (almost no problems). You have to set layouts to your group boxes too and everything will be resizing. Also bear in mind you don't really need a grid layout for the top widget, vertical one (with 2 items) should do just fine.

                                Edit.
                                Actually I took a closer look. I'd put the two groups in a nested horizontal layout, the dropdown with buttons in a vertical one. The vertical one and the text area in a horizontal one and set the root widget's layout to vertical.

                                You can judge if there's a layout attached to the widget by looking at the object tree - the red crossed circle means there's no layout. Otherwise the assigned layout is shown as an icon. The child objects you see in the tree will be ordered according to the set layout. In practice using a nested layout isn't very often needed, only occasionally.

                                mzimmersM Offline
                                mzimmersM Offline
                                mzimmers
                                wrote on last edited by
                                #21

                                @kshegunov that's good information. This is now close to what I want:

                                0_1507322977346_there.PNG

                                I think this is close to what you suggested.

                                So, the lesson learned here is, it isn't enough to simply have all the child objects in a layout -- you must have the parent widget itself in a layout. Correct?

                                kshegunovK 1 Reply Last reply
                                0
                                • mzimmersM mzimmers

                                  @kshegunov that's good information. This is now close to what I want:

                                  0_1507322977346_there.PNG

                                  I think this is close to what you suggested.

                                  So, the lesson learned here is, it isn't enough to simply have all the child objects in a layout -- you must have the parent widget itself in a layout. Correct?

                                  kshegunovK Offline
                                  kshegunovK Offline
                                  kshegunov
                                  Moderators
                                  wrote on last edited by
                                  #22

                                  @mzimmers said in Can't get my widget to auto-resize...:

                                  I think this is close to what you suggested.

                                  Exactly what I had in mind. A small note here, for the SSID/PSK box you can use a form layout instead of a grid layout. Not much of a difference, just a matter of preference. You can also control how space is split between the layouts by going to the property editor (below the object tree) and setting the stretches.

                                  So, the lesson learned here is, it isn't enough to simply have all the child objects in a layout -- you must have the parent widget itself in a layout. Correct?

                                  Correct!

                                  Read and abide by the Qt Code of Conduct

                                  1 Reply Last reply
                                  1

                                  • Login

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