Grid layout reordering after modifications
-
@kshegunov
Yes pictures made it very clear.
Try to reproduce it in Creator. Its seems to
rearrange. -
@kshegunov
I know u cant use UI file.
Im just wondering why in creator,
if I create a grid 3x2 with buttons.
Then from code, i take() and delete say button 3, i
get no holes. But in AgDial there is.
I should get the same, shouldn't I? -
@mrjj
I suppose so. But I'm nottake
ing the item itself, maybe this is why the behavior differs.I'll try it out.
Nope, substituting the relevant reinsertion code with:delete layout->takeAt(index); delete button; buttons.erase(i);
Produces the same hole. I have no idea why this works in your case ...
-
Just to be sure, we are talking
about a normal gridlayout in a widget?
At runtime, there should be no difference between one from
UI files and one from code.
So your case must be different or mine too simple. -
Just to be sure, we are talking
about a normal gridlayout in a widget?Absolutely! Here's how a create a page:
bool AgDialPrivate::createPage(QAction * action) { Q_ASSERT(action); QList<QAction *> children = action->findChildren<QAction *>(QString(), Qt::FindDirectChildrenOnly); if (children.count() <= 0 || pages.value(action, NULL)) return false; // Create a page for this action AGUI_Q(AgDial); QWidget * page = new QWidget(q); new QGridLayout(page); pages.insert(action, page); q->addWidget(page); // Create a return button QAction * parent = qobject_cast<QAction *>(action->parent()); createReturnButton(page, parent); // If the action has any children, create their buttons and/or pages foreach (QAction * child, children) { createButton(child); if (child->children().count() > 0) createPage(child); } // Map the triggered signal of the child action QSignalMapper * mapper = new QSignalMapper(page); mapper->setMapping(action, page); QObject::connect(action, SIGNAL(triggered()), mapper, SLOT(map())); QObject::connect(mapper, SIGNAL(mapped(QWidget *)), q, SLOT(setCurrentWidget(QWidget *))); return true; }
-
Ok, i delete sample and tried again.
Now I get hole too! ?
only difference is that I had min/max heights in other test. -
Ok. now even in Creator it leaves holes.
my first sample must not been proper. -
@kshegunov
I agree . must been something like that as now the effect
is 100% as your experience. Even in designer.
Sorry for the confusion.