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

Posted

技术标签:

【中文标题】旋转框列表,仅显示更改的值【英文标题】:List of spinboxes, displaying only values changed 【发布时间】:2014-05-02 20:32:13 【问题描述】:

所以,我在一个选项卡中有大量旋转框 (30),在另一个选项卡上有一个确认页面。 如何才能在确认页面中只显示 0 以上的名称和值?

不确定是否重要,我在 Qt 中这样做。

【问题讨论】:

你不能只使用getValue()检查每个旋转框的值,然后在值>0时显示名称/值吗?如果您使用列表/向量来存储旋转框,那么您可以循环执行。 @RakibulHasan:这不是 java 或 C。没有 getValue()。 【参考方案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

【讨论】:

【参考方案2】:

您可以获取旋转框列表并对其进行迭代,例如:

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

foreach(QSpinBox *spin, list)

    if(spin->value()>0)
    
        QDebug()<< spin->objectName();
    

如果您之前通过setObjectName(const QString &amp;name) 为您的旋转框分配了名称,您可以通过objectName() 获取对象的名称。

【讨论】:

这不会编译,因为 QSpinBox 类中没有“getValue()”方法。 谢谢;还有,生日快乐!这些天你已经 27 岁了。 ;) @LaszloPapp 谢谢你,你真好。

以上是关于旋转框列表,仅显示更改的值的主要内容,如果未能解决你的问题,请参考以下文章

单击单选按钮或更改 PyQt 中的旋转框时,组合框索引值返回默认值 0

QT:来自多个旋转框的项目列表

Qt入门系列开发教程基础控件篇QSpinBox旋转框

视频显示旋转位置已更改

阻止移动网页上的设备旋转

GML 图层以更改的旋转显示