Список спинбоксов, отображающий только измененные значения

Итак, у меня есть обширный список спинбоксов (30) на одной вкладке и страница подтверждения на другой вкладке.
Как я могу отображать только имена и значения выше 0 на странице подтверждения?

Не уверен, что это важно, я делаю это в Qt.

2

Решение

На вашем месте я написал бы что-то вроде этого:

confirmationpage.cpp

#include <QString>
#include <QSpinBox>
#include <QList>
#include <QLabel>

...
void ConfirmationPage::displaySpinBoxNameValues()
{
QString myText;
// Get the spinboxes from your tab.
// Use pointer anywhere here if you use that
foreach (SpinBox spinbBox, SpinBoxList) {
if (spinBox.value() > 0) {
myText.append(QString("Name: ") + spinBox.text());
myText.append(QString("\tValue: ") + spinBox.value());
myText.append('\n');
}
}
if (myText.isEmpty())
myText.append("No QSpinBox has value greater than zero!\n");
// Could be a QLabel, etc.
myDisplayWidget.setText(myText);
}
...

Для понимания методов, использованных для этого, вам понадобятся следующие документации по методам:

Свойство текста QLabel

Свойство значения QLabel

1

Другие решения

Вы можете получить список спинбоксов и перебрать их, например:

QList<QSpinBox *> list = this->findChildren<QSpinBox *>();

foreach(QSpinBox *spin, list)
{
if(spin->value()>0)
{
QDebug()<< spin->objectName();
}
}

Вы можете получить название объекта по objectName() если вы ранее присвоили имена своим спинбоксам setObjectName(const QString &name) ,

0

По вопросам рекламы [email protected]