旋转框列表,仅显示更改的值

时间:2014-05-02 20:32:14

标签: c++ qt qwidget qtgui qspinbox

因此,我在一个选项卡中有一个广泛的旋转框列表(30),另一个选项卡上有一个确认页面。 如何才能在确认页面中仅显示0以上的名称和值?

不确定是否重要,我在Qt。

这样做

2 个答案:

答案 0 :(得分:1)

如果我是你,我会写这样的东西:

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 text property

QLabel value property

答案 1 :(得分:0)

您可以获取旋转框列表并迭代它们,如:

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

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

如果您之前已通过objectName()为您的纺纱箱指定了名称,则可以按setObjectName(const QString &name)获取对象的名称。