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. Minimum number of Widgets added to a window which have a minimum size
Forum Updated to NodeBB v4.3 + New Features

Minimum number of Widgets added to a window which have a minimum size

Scheduled Pinned Locked Moved Unsolved General and Desktop
15 Posts 5 Posters 1.4k Views 2 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.
  • Swati777999S Offline
    Swati777999S Offline
    Swati777999
    wrote on last edited by
    #1

    I need suggestions about adding a minimum number of widgets to the window.
    Widgets should have a minimum size, must not shrink below that size even when more widgets are added to the window layout.

    For example, suppose by length 10 widgets can get accommodated in row 1, if you add 12 widgets,2 widgets must occupy row 2, and so on.

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

      Sound a lot like: https://doc.qt.io/qt-6/qtwidgets-layouts-flowlayout-example.html

      "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

      Swati777999S 1 Reply Last reply
      5
      • VRoninV VRonin

        Sound a lot like: https://doc.qt.io/qt-6/qtwidgets-layouts-flowlayout-example.html

        Swati777999S Offline
        Swati777999S Offline
        Swati777999
        wrote on last edited by
        #3

        @VRonin said in Minimum number of Widgets added to a window which have a minimum size:

        Sound a lot like: https://doc.qt.io/qt-6/qtwidgets-layouts-flowlayout-example.html

        In my design, I want to have different widgets of the same minimum size, no matter what the size of the window is, they appear in the same size and when the number of widgets/row increases the widgets will get shifted to the rows below.

        Pl45m4P 1 Reply Last reply
        0
        • Swati777999S Swati777999

          @VRonin said in Minimum number of Widgets added to a window which have a minimum size:

          Sound a lot like: https://doc.qt.io/qt-6/qtwidgets-layouts-flowlayout-example.html

          In my design, I want to have different widgets of the same minimum size, no matter what the size of the window is, they appear in the same size and when the number of widgets/row increases the widgets will get shifted to the rows below.

          Pl45m4P Offline
          Pl45m4P Offline
          Pl45m4
          wrote on last edited by
          #4

          @Swati777999

          That is what FlowLayout should do?! Have you tested it already?


          If debugging is the process of removing software bugs, then programming must be the process of putting them in.

          ~E. W. Dijkstra

          Swati777999S 1 Reply Last reply
          0
          • Pl45m4P Pl45m4

            @Swati777999

            That is what FlowLayout should do?! Have you tested it already?

            Swati777999S Offline
            Swati777999S Offline
            Swati777999
            wrote on last edited by
            #5

            @Pl45m4

            Yes, I got its working through the Qt documentation. It's a derived custom layout.
            [I have to include all its files in my project to make it work]I wish it were a pre-defined class of Qt.

            Pl45m4P 1 Reply Last reply
            0
            • Swati777999S Swati777999

              @Pl45m4

              Yes, I got its working through the Qt documentation. It's a derived custom layout.
              [I have to include all its files in my project to make it work]I wish it were a pre-defined class of Qt.

              Pl45m4P Offline
              Pl45m4P Offline
              Pl45m4
              wrote on last edited by
              #6

              @Swati777999 said in Minimum number of Widgets added to a window which have a minimum size:

              I wish it were a pre-defined class of Qt.

              If you take the FlowLayout.cpp and FlowLayout.h from the example and create a new class in your project, you can use it, like it has always been there :)


              If debugging is the process of removing software bugs, then programming must be the process of putting them in.

              ~E. W. Dijkstra

              Swati777999S 2 Replies Last reply
              1
              • Pl45m4P Pl45m4

                @Swati777999 said in Minimum number of Widgets added to a window which have a minimum size:

                I wish it were a pre-defined class of Qt.

                If you take the FlowLayout.cpp and FlowLayout.h from the example and create a new class in your project, you can use it, like it has always been there :)

                Swati777999S Offline
                Swati777999S Offline
                Swati777999
                wrote on last edited by
                #7
                This post is deleted!
                1 Reply Last reply
                0
                • Pl45m4P Pl45m4

                  @Swati777999 said in Minimum number of Widgets added to a window which have a minimum size:

                  I wish it were a pre-defined class of Qt.

                  If you take the FlowLayout.cpp and FlowLayout.h from the example and create a new class in your project, you can use it, like it has always been there :)

                  Swati777999S Offline
                  Swati777999S Offline
                  Swati777999
                  wrote on last edited by
                  #8

                  @Pl45m4
                  LayoutExample_Qt.PNG

                  If I add flowlayout.h in headers of Layout class and flowlayout.cpp in the sources of Layout class , will it not work?

                  jsulmJ Pl45m4P 2 Replies Last reply
                  0
                  • Swati777999S Swati777999

                    @Pl45m4
                    LayoutExample_Qt.PNG

                    If I add flowlayout.h in headers of Layout class and flowlayout.cpp in the sources of Layout class , will it not work?

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

                    @Swati777999 said in Minimum number of Widgets added to a window which have a minimum size:

                    will it not work?

                    Why should it not work?
                    Why don't you simply try? It is faster than waiting in forum for a response...

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

                    Swati777999S 1 Reply Last reply
                    0
                    • jsulmJ jsulm

                      @Swati777999 said in Minimum number of Widgets added to a window which have a minimum size:

                      will it not work?

                      Why should it not work?
                      Why don't you simply try? It is faster than waiting in forum for a response...

                      Swati777999S Offline
                      Swati777999S Offline
                      Swati777999
                      wrote on last edited by
                      #10

                      @jsulm

                      Yes, I am trying with flowLayout instead of GridLayout, I couldn't see flow Layout working in the way it is expected to work.

                      jsulmJ 1 Reply Last reply
                      0
                      • Swati777999S Swati777999

                        @jsulm

                        Yes, I am trying with flowLayout instead of GridLayout, I couldn't see flow Layout working in the way it is expected to work.

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

                        @Swati777999 As long as you don't provide more information others can only guess...

                        1. Show your code
                        2. Explain how exactly it misbehaves

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

                        Swati777999S 1 Reply Last reply
                        1
                        • jsulmJ jsulm

                          @Swati777999 As long as you don't provide more information others can only guess...

                          1. Show your code
                          2. Explain how exactly it misbehaves
                          Swati777999S Offline
                          Swati777999S Offline
                          Swati777999
                          wrote on last edited by
                          #12

                          @jsulm

                          See the following code.
                          The reason for using QMap is that I've become familiar with it . I've not tried arrays with QVector.

                               int n=20;
                              QGridLayout *mSDLayout = new QGridLayout();
                              QMap <int,QWidget*>dTWidgets;
                              QMap <int, QLabel*>Names;
                              QMap <int ,QTableWidget *> dTs;
                          
                              FlowLayout *flowLayout=new FlowLayout(); // Parent Layout
                          
                                for (int ii=0;ii<n;ii++)
                                  {
                          
                                    dTWidgets[ii] =new QWidget();  
                          
                          //          mSDLayout->addWidget(dTWidgets[ii],0,ii);
                                    mSDLayout->addWidget(dTWidgets[ii],0,ii,Qt::AlignCenter);
                          
                          
                                    Names[ii] =new QLabel(QString("Name %1").arg(ii+1));
                          
                                    flowLayout->addWidget(Names[ii]);
                                    flowLayout->setAlignment(Names[ii],Qt::AlignHCenter);
                          
                                    dTs[ii] = new QTableWidget(); 
                                    flowLayout->addWidget(dTs[ii]);
                                    dTWidgets[ii]->setLayout(flowLayout);
                          

                          This code gives me following result-
                          SingleFLayout.PNG

                          JKSHJ 1 Reply Last reply
                          0
                          • Swati777999S Swati777999

                            @jsulm

                            See the following code.
                            The reason for using QMap is that I've become familiar with it . I've not tried arrays with QVector.

                                 int n=20;
                                QGridLayout *mSDLayout = new QGridLayout();
                                QMap <int,QWidget*>dTWidgets;
                                QMap <int, QLabel*>Names;
                                QMap <int ,QTableWidget *> dTs;
                            
                                FlowLayout *flowLayout=new FlowLayout(); // Parent Layout
                            
                                  for (int ii=0;ii<n;ii++)
                                    {
                            
                                      dTWidgets[ii] =new QWidget();  
                            
                            //          mSDLayout->addWidget(dTWidgets[ii],0,ii);
                                      mSDLayout->addWidget(dTWidgets[ii],0,ii,Qt::AlignCenter);
                            
                            
                                      Names[ii] =new QLabel(QString("Name %1").arg(ii+1));
                            
                                      flowLayout->addWidget(Names[ii]);
                                      flowLayout->setAlignment(Names[ii],Qt::AlignHCenter);
                            
                                      dTs[ii] = new QTableWidget(); 
                                      flowLayout->addWidget(dTs[ii]);
                                      dTWidgets[ii]->setLayout(flowLayout);
                            

                            This code gives me following result-
                            SingleFLayout.PNG

                            JKSHJ Offline
                            JKSHJ Offline
                            JKSH
                            Moderators
                            wrote on last edited by
                            #13

                            @Swati777999 said in Minimum number of Widgets added to a window which have a minimum size:

                            The reason for using QMap is that I've become familiar with it . I've not tried arrays with QVector.

                            • A vector is an array.
                            • A map is not an array.
                            dTWidgets[ii]->setLayout(flowLayout);
                            

                            Tell us:

                            1. Which which should this layout belong to?
                            2. Which widget is your top-level widget?

                            Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                            Swati777999S 1 Reply Last reply
                            2
                            • Swati777999S Swati777999

                              @Pl45m4
                              LayoutExample_Qt.PNG

                              If I add flowlayout.h in headers of Layout class and flowlayout.cpp in the sources of Layout class , will it not work?

                              Pl45m4P Offline
                              Pl45m4P Offline
                              Pl45m4
                              wrote on last edited by
                              #14

                              @Swati777999 said in Minimum number of Widgets added to a window which have a minimum size:

                              If I add flowlayout.h in headers of Layout class and flowlayout.cpp in the sources of Layout class , will it not work?

                              Layout is your project name, not your class.
                              LayoutExample is your class name, judging from your header and code file.
                              What does this file include? Is it the whole FlowLayoutExample or just the FlowLayout class taken from there?


                              If debugging is the process of removing software bugs, then programming must be the process of putting them in.

                              ~E. W. Dijkstra

                              1 Reply Last reply
                              0
                              • JKSHJ JKSH

                                @Swati777999 said in Minimum number of Widgets added to a window which have a minimum size:

                                The reason for using QMap is that I've become familiar with it . I've not tried arrays with QVector.

                                • A vector is an array.
                                • A map is not an array.
                                dTWidgets[ii]->setLayout(flowLayout);
                                

                                Tell us:

                                1. Which which should this layout belong to?
                                2. Which widget is your top-level widget?
                                Swati777999S Offline
                                Swati777999S Offline
                                Swati777999
                                wrote on last edited by
                                #15

                                @JKSH said in Minimum number of Widgets added to a window which have a minimum size:

                                @Swati777999 said in Minimum number of Widgets added to a window which have a minimum size:

                                The reason for using QMap is that I've become familiar with it . I've not tried arrays with QVector.

                                • A vector is an array.
                                • A map is not an array.
                                dTWidgets[ii]->setLayout(flowLayout);
                                

                                Tell us:

                                1. Which which should this layout belong to?

                                FlowLayout *flowLayout=new FlowLayout(); // Parent Layout
                                Flow Layout Example from Qt documentation
                                I've included flowlayout.h and flowlayout.cpp in the headers and sources of Layout project.
                                Layout_Project.PNG

                                1. Which widget is your top-level widget?
                                  QWidget *mSWidget = new QWidget(this);
                                  QVBoxLayout *mSLayout=new QVBoxLayout(mSWidget);
                                  mSWidget ->setLayout(mSLayout);

                                actually it's the outer level box to which an inner level layout is added , now I am focussed on the inner level design which should look like
                                Layout_Example7.PNG
                                To FlowLayout ,these units are added as widgets.

                                I hope that I explained it well.

                                1 Reply Last reply
                                0

                                • Login

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