我有很多行包含图片,文字和一堆数据。每行都是单独的QWidget
。每个都有一个唯一的编号(由用户输入,使用setObjectName("rzad_"+number)
)。我需要做的是每次添加新内容时按降序对行进行排序。
我该怎么做?
编辑:
我尝试过全局QListWidget
,但在检索小部件时崩溃了。在将QWidget
添加到QListWidget
之后,我可以执行此操作:
ui->scrollAreaWidgetContentsZdjeciaButow->layout()->addWidget(listaWidget->findChild<QWidget*>("rzadKontener_" + poziom));
它会将小部件添加到该区域,但在此之后,当我调用sortRows方法时,
std::sort(poziomyNachylenia.begin(), poziomyNachylenia.end(), std::greater<int>());
QWidget* nowyZestawRzedow = new QWidget; //new widget for sorted rows
QVBoxLayout* nowyZestawRzedowLayout = new QVBoxLayout;
nowyZestawRzedowLayout->setContentsMargins(-5, -5, -5, -5);
nowyZestawRzedowLayout->setAlignment(Qt::AlignLeft);
nowyZestawRzedowLayout->setAlignment(Qt::AlignTop);
nowyZestawRzedow->setLayout(nowyZestawRzedowLayout);
qDebug() << ui->scrollAreaWidgetContentsZdjeciaButow->layout()->count() << "count";
for (int i = 0; i < ui->scrollAreaWidgetContentsZdjeciaButow->layout()->count(); ++i) {
QString numerRzedu = QString::number(poziomyNachylenia[i]);
//this crashes the app
nowyZestawRzedow->layout()->addWidget(listaWidget->findChild<QWidget*>("rzadKontener_" + numerRzedu));
//and so does this.
QString nameT = listaWidget->findChild<QWidget*>("rzadKontener_" + numerRzedu)->objectName();
qDebug() << "added" << nameT;
}
是什么给出了?