QSpinBox 千位分隔符

Sep*_*our 5 c++ python qt pyqt qspinbox

使用 QSpinBox 是否可以在用户输入数字(例如 10,000)时显示数字的千位分隔符哪种是最好的方法?

Bin*_*soi 5

我知道这已经晚了,但这可能对其他人有帮助。我用它来更新千位分隔符

ui->doubleSpinBox->setGroupSeparatorShown(true);

或者

以 ui 形式设置属性 it

在我的 QDialog 表单中,我用它来更新带有千位分隔符的金额,

void DialogCashPayment::on_doubleSpinBox_valueChanged(double arg1){
     ui->doubleSpinBox->setValue(arg1);
}
Run Code Online (Sandbox Code Playgroud)

编辑:

发现一个bug,当金额达到10k以上时,光标位置发生了变化。我还不知道如何解决这个问题。也许有人可以解决这个问题。


pne*_*zis 2

您可以子类化QSpinBox并重新实现textFromValue负责将值显示到旋转框小部件的。可能的实现如下:

QString MySpinBox::textFromValue(int value)
{
   return this->locale()->toString(value);
}
Run Code Online (Sandbox Code Playgroud)

使用区域设置是最好的方法,因为它将根据用户的设置显示分隔符。