Je suis suivre cet exemple pour créer une mise en page de flux:Comment ajouter un élément à l'index spécifique dans la mise en page
http://doc.qt.io/qt-4.8/qt-layouts-flowlayout-example.html
Cela n'a pas addToIndex(int _index)
fonction, donc je voudrais mettre en oeuvre cette . Puisque cette disposition utilise QLayoutItems, je voudrais créer une fonction qui peut insérer un élément après l'index spécifique.
Comment puis-je obtenir l'index d'un élément en entier et l'insérer dans la mise en page?
MISE À JOUR:
flowlayout.cpp
FlowLayout *flowLayout = new FlowLayout;
void FlowLayout::insertItem(int index, QLayoutItem *item)
{
if(itemList.size() < index)
{
itemList.append(item);
}
else
{
itemList.insert(index,item);
QRect tmp = this->geometry();
}
update();
}
flowwindow.cpp
void FlowWindow::addLineBreak()
{
flowbreak = new FlowLayoutButton(NULL);
QLayoutItem *item = new QWidgetItem(flowbreak);
flowlayout->insertItem(index, item);
//flowlayout->addWidget(flowbreak);
}
constructeur flowlayoutbutton.cpp
FlowLayoutButton::FlowLayoutButton(QWidget *_parent):QWidget(_parent)
{
QBoxLayout *layout = new QHBoxLayout;
flowbreak = new QPushButton(tr("-------Label-------"));
flowbreak->setGeometry(0, 0, 200,20);
layout->addWidget(flowBreak);
setLayout(layout);
}
Merci :). Mais comment peux-tu aussi me dire comment je peux convertir mon widget en 'QLayoutItem'? –
en supposant que vous avez un widget, par exemple 'QLineEdit * widget = nouveau QLineEdit();' simplement utiliser 'QLayoutItem * item = nouveau QWidgetItem (widget);' – WoJo
Oui, cette erreur de compilateur résolu, mais maintenant, il ne met pas à jour le mise en page avec le nouvel élément. Est-ce que cela nécessite une autre fonction 'insertWidget()'? –