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