QSpinBox разделитель тысяч - PullRequest
3 голосов
/ 14 февраля 2012

С помощью QSpinBox можно отображать разделитель тысяч числа, когда пользователь вводит его, например, 10000. Какой лучший способ сделать это?

Ответы [ 2 ]

3 голосов
/ 25 мая 2017

я знаю, что уже поздно, но это может помочь другим людям.я использовал это, чтобы обновить разделитель тысяч

ui->doubleSpinBox->setGroupSeparatorShown(true);

или

установить свойство в виде ui

В моей форме QDialog я использовал это, чтобы обновить сумму с разделителем тысяч,

void DialogCashPayment::on_doubleSpinBox_valueChanged(double arg1){
     ui->doubleSpinBox->setValue(arg1);
}

РЕДАКТИРОВАТЬ:

Обнаружил ошибку, когда сумма10k выше, позиция курсора изменена.я пока не знаю как это исправить.Может быть, кто-то может это исправить.

2 голосов
/ 14 февраля 2012

Вы можете создать подкласс QSpinBox и переопределить textFromValue, который отвечает за отображение значения в виджете spinbox. Возможная реализация может быть следующей:

QString MySpinBox::textFromValue(int value)
{
   return this->locale()->toString(value);
}

Использование locale - лучший способ, поскольку он отображает разделитель в зависимости от настроек пользователя.

...