How to arrange items in QGridLayout when resizing?












0















I have a QGridLayout where I add several widgets dynamically, using QGridLayout::addWidget(). I have no problem for these widgets, as they are all the same.



However, I'd like to know how to handle their alignment when I'll resize the widget containing the grid layout. For example, if my widget is wide enough, I could fit 5 widgets on a single row:



------------------------------------------------
| ------- ------- ------- ------- ------- |
| | 1 | | 2 | | 3 | | 4 | | 5 | |
| ------- ------- ------- ------- ------- |
| |


But if I reduce the width of the widget, I'd like to have all the widgets visible, that means creating new row(s):



--------------------
| ------- ------- |
| | 1 | | 2 | |
| ------- ------- |
| ------- ------- |
| | 3 | | 4 | |
| ------- ------- |
| ------- |
| | 5 | |
| ------- |
| |


I think it can be done via the resize event, but how?










share|improve this question

























  • QGridLayout does not implement that policy, if you want to create this behavior you must create your own layout, the following link shows how to do it: How to Write A Custom Layout Manager, Also give an example of a layout like the one you want: Flow Layout Example

    – eyllanesc
    Oct 23 '17 at 14:40











  • @eyllanesc Ah, neat. Is there a reason why it's not doable with QGridLayout? If you want to lay your comment as an answer, I'll accept it.

    – IAmInPLS
    Oct 23 '17 at 15:03











  • I already posted an answer

    – eyllanesc
    Oct 23 '17 at 15:11











  • @eyllanesc Not at the time I commented ;-)

    – IAmInPLS
    Oct 23 '17 at 15:19
















0















I have a QGridLayout where I add several widgets dynamically, using QGridLayout::addWidget(). I have no problem for these widgets, as they are all the same.



However, I'd like to know how to handle their alignment when I'll resize the widget containing the grid layout. For example, if my widget is wide enough, I could fit 5 widgets on a single row:



------------------------------------------------
| ------- ------- ------- ------- ------- |
| | 1 | | 2 | | 3 | | 4 | | 5 | |
| ------- ------- ------- ------- ------- |
| |


But if I reduce the width of the widget, I'd like to have all the widgets visible, that means creating new row(s):



--------------------
| ------- ------- |
| | 1 | | 2 | |
| ------- ------- |
| ------- ------- |
| | 3 | | 4 | |
| ------- ------- |
| ------- |
| | 5 | |
| ------- |
| |


I think it can be done via the resize event, but how?










share|improve this question

























  • QGridLayout does not implement that policy, if you want to create this behavior you must create your own layout, the following link shows how to do it: How to Write A Custom Layout Manager, Also give an example of a layout like the one you want: Flow Layout Example

    – eyllanesc
    Oct 23 '17 at 14:40











  • @eyllanesc Ah, neat. Is there a reason why it's not doable with QGridLayout? If you want to lay your comment as an answer, I'll accept it.

    – IAmInPLS
    Oct 23 '17 at 15:03











  • I already posted an answer

    – eyllanesc
    Oct 23 '17 at 15:11











  • @eyllanesc Not at the time I commented ;-)

    – IAmInPLS
    Oct 23 '17 at 15:19














0












0








0








I have a QGridLayout where I add several widgets dynamically, using QGridLayout::addWidget(). I have no problem for these widgets, as they are all the same.



However, I'd like to know how to handle their alignment when I'll resize the widget containing the grid layout. For example, if my widget is wide enough, I could fit 5 widgets on a single row:



------------------------------------------------
| ------- ------- ------- ------- ------- |
| | 1 | | 2 | | 3 | | 4 | | 5 | |
| ------- ------- ------- ------- ------- |
| |


But if I reduce the width of the widget, I'd like to have all the widgets visible, that means creating new row(s):



--------------------
| ------- ------- |
| | 1 | | 2 | |
| ------- ------- |
| ------- ------- |
| | 3 | | 4 | |
| ------- ------- |
| ------- |
| | 5 | |
| ------- |
| |


I think it can be done via the resize event, but how?










share|improve this question
















I have a QGridLayout where I add several widgets dynamically, using QGridLayout::addWidget(). I have no problem for these widgets, as they are all the same.



However, I'd like to know how to handle their alignment when I'll resize the widget containing the grid layout. For example, if my widget is wide enough, I could fit 5 widgets on a single row:



------------------------------------------------
| ------- ------- ------- ------- ------- |
| | 1 | | 2 | | 3 | | 4 | | 5 | |
| ------- ------- ------- ------- ------- |
| |


But if I reduce the width of the widget, I'd like to have all the widgets visible, that means creating new row(s):



--------------------
| ------- ------- |
| | 1 | | 2 | |
| ------- ------- |
| ------- ------- |
| | 3 | | 4 | |
| ------- ------- |
| ------- |
| | 5 | |
| ------- |
| |


I think it can be done via the resize event, but how?







c++ qt qt5 qgridlayout






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 26 '18 at 2:53









eyllanesc

84.5k103562




84.5k103562










asked Oct 23 '17 at 12:05









IAmInPLSIAmInPLS

2,83741546




2,83741546













  • QGridLayout does not implement that policy, if you want to create this behavior you must create your own layout, the following link shows how to do it: How to Write A Custom Layout Manager, Also give an example of a layout like the one you want: Flow Layout Example

    – eyllanesc
    Oct 23 '17 at 14:40











  • @eyllanesc Ah, neat. Is there a reason why it's not doable with QGridLayout? If you want to lay your comment as an answer, I'll accept it.

    – IAmInPLS
    Oct 23 '17 at 15:03











  • I already posted an answer

    – eyllanesc
    Oct 23 '17 at 15:11











  • @eyllanesc Not at the time I commented ;-)

    – IAmInPLS
    Oct 23 '17 at 15:19



















  • QGridLayout does not implement that policy, if you want to create this behavior you must create your own layout, the following link shows how to do it: How to Write A Custom Layout Manager, Also give an example of a layout like the one you want: Flow Layout Example

    – eyllanesc
    Oct 23 '17 at 14:40











  • @eyllanesc Ah, neat. Is there a reason why it's not doable with QGridLayout? If you want to lay your comment as an answer, I'll accept it.

    – IAmInPLS
    Oct 23 '17 at 15:03











  • I already posted an answer

    – eyllanesc
    Oct 23 '17 at 15:11











  • @eyllanesc Not at the time I commented ;-)

    – IAmInPLS
    Oct 23 '17 at 15:19

















QGridLayout does not implement that policy, if you want to create this behavior you must create your own layout, the following link shows how to do it: How to Write A Custom Layout Manager, Also give an example of a layout like the one you want: Flow Layout Example

– eyllanesc
Oct 23 '17 at 14:40





QGridLayout does not implement that policy, if you want to create this behavior you must create your own layout, the following link shows how to do it: How to Write A Custom Layout Manager, Also give an example of a layout like the one you want: Flow Layout Example

– eyllanesc
Oct 23 '17 at 14:40













@eyllanesc Ah, neat. Is there a reason why it's not doable with QGridLayout? If you want to lay your comment as an answer, I'll accept it.

– IAmInPLS
Oct 23 '17 at 15:03





@eyllanesc Ah, neat. Is there a reason why it's not doable with QGridLayout? If you want to lay your comment as an answer, I'll accept it.

– IAmInPLS
Oct 23 '17 at 15:03













I already posted an answer

– eyllanesc
Oct 23 '17 at 15:11





I already posted an answer

– eyllanesc
Oct 23 '17 at 15:11













@eyllanesc Not at the time I commented ;-)

– IAmInPLS
Oct 23 '17 at 15:19





@eyllanesc Not at the time I commented ;-)

– IAmInPLS
Oct 23 '17 at 15:19












1 Answer
1






active

oldest

votes


















1














Layouts are used to manage the layout and sizes of a set of widgets. QGridLayout is oriented to handle the widgets inside a static grid, that is to say that the position in column and row of an item does not change reason why it is not possible to create that type of disposition.



Qt has a great documentation, so it also tells us how to create custom layouts: How to Write A Custom Layout Manager



The above link shows an example that is precisely what you want: Flow Layout Example






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f46888938%2fhow-to-arrange-items-in-qgridlayout-when-resizing%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    Layouts are used to manage the layout and sizes of a set of widgets. QGridLayout is oriented to handle the widgets inside a static grid, that is to say that the position in column and row of an item does not change reason why it is not possible to create that type of disposition.



    Qt has a great documentation, so it also tells us how to create custom layouts: How to Write A Custom Layout Manager



    The above link shows an example that is precisely what you want: Flow Layout Example






    share|improve this answer




























      1














      Layouts are used to manage the layout and sizes of a set of widgets. QGridLayout is oriented to handle the widgets inside a static grid, that is to say that the position in column and row of an item does not change reason why it is not possible to create that type of disposition.



      Qt has a great documentation, so it also tells us how to create custom layouts: How to Write A Custom Layout Manager



      The above link shows an example that is precisely what you want: Flow Layout Example






      share|improve this answer


























        1












        1








        1







        Layouts are used to manage the layout and sizes of a set of widgets. QGridLayout is oriented to handle the widgets inside a static grid, that is to say that the position in column and row of an item does not change reason why it is not possible to create that type of disposition.



        Qt has a great documentation, so it also tells us how to create custom layouts: How to Write A Custom Layout Manager



        The above link shows an example that is precisely what you want: Flow Layout Example






        share|improve this answer













        Layouts are used to manage the layout and sizes of a set of widgets. QGridLayout is oriented to handle the widgets inside a static grid, that is to say that the position in column and row of an item does not change reason why it is not possible to create that type of disposition.



        Qt has a great documentation, so it also tells us how to create custom layouts: How to Write A Custom Layout Manager



        The above link shows an example that is precisely what you want: Flow Layout Example







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Oct 23 '17 at 15:11









        eyllanesceyllanesc

        84.5k103562




        84.5k103562
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f46888938%2fhow-to-arrange-items-in-qgridlayout-when-resizing%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Tonle Sap (See)

            I get strange results when I access the Sqlitedatabase with Unity C# via XAMPP

            Guatemaltekische Davis-Cup-Mannschaft