How to arrange items in QGridLayout when resizing?
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
add a comment |
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
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
add a comment |
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
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
c++ qt qt5 qgridlayout
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
add a comment |
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
add a comment |
1 Answer
1
active
oldest
votes
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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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
add a comment |
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
add a comment |
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
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
answered Oct 23 '17 at 15:11
eyllanesceyllanesc
84.5k103562
84.5k103562
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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