我的Window中有4个双面盒。我想在这个双打箱中显示固定宽度的值。例如,我的doublespinbox范围是0到100.00我想以000.00的格式显示值。所以尽管值为8,但它应该在我的双打箱中显示为008.00。同样,我希望在编辑值时突出显示我的双打框中的每个数字。我怎么能这样做? 。所有纺纱箱的宽度/范围都不同。有人可以帮助我。
答案 0 :(得分: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');
}
};
答案 1 :(得分:0)
我想你必须使用setDecimals来强制前导零和setPrefix为前导零。问题是你必须根据双打箱的值改变前缀。简单的方法是将一个插槽连接到valueChanged信号并在那里完成工作。不那么简单的方法是对doublespinBox进行子类化,但我不知道要重新实现什么。