0

我的窗口中有 4 个双旋转框。我想在这个 doublespinbox 中显示固定宽度的值。例如,我的 doublespinbox 范围是 0 到 100.00,我想始终以 000.00 的格式显示值。因此,尽管值为 8,但它应该在我的 doublespinbox 中显示为 008.00。同样,我想在编辑值期间突出显示我的 doublespinbox 中的每个数字。我该怎么做?. 所有旋转框的宽度/范围都不同。有人可以帮助我。

4

2 回答 2

1

正如我在对@asclepix 帖子的评论中所说,您需要重新实现textFromValue. 这个片段对我来说很好。

class MyDoubleSpinBox : public QDoubleSpinBox
{
public:
    explicit MyDoubleSpinBox(QWidget *parent = 0) : QDoubleSpinBox(parent) {
        setMaximum(999.99);
    }

    QString textFromValue(double val) const {
        const int width = 6;        // length of whole number in symbols '000.00'
        const int precision = 2;    // after separator

        // rightJustified to add leading zeroes
        return QLocale().toString(val, 'f', precision).rightJustified(width, '0');
    }
};
于 2013-03-06T10:45:16.240 回答
0

我想你必须使用 setDecimals 来强制尾随零和 setPrefix 用于前导零。问题是您必须根据 doublespinbox 的值更改前缀。简单的方法是将插槽连接到 valueChanged 信号并在那里完成工作。不太简单的方法是对 doublespinBox 进行子类化,但我不知道要重新实现什么。

于 2013-03-06T08:26:35.247 回答