QInputDialog отображает запятую вместо точки для getDouble () - PullRequest
1 голос

Я использую для ввода десятичного числа в Qt QInputDialog::getDouble().По какой-то причине по умолчанию выводит вместо точки запятую, хотя в учебниках указывается точка.

Можете ли вы сказать мне, что это такое, или новые версии могут использовать только запятую?Точка отказывается от клавиатуры

double test = QInputDialog::getDouble(this, "Error!", "Write from 0 to 1!", 0.0, -2147483647, 2147483647, 3, &ok );

enter image description here

1 Ответ

1 голос
/ 08 мая 2019

Это зависит от настроек QLocale вашей текущей системы.Если вы используете экземпляр QInputDialog вместо статического метода, вы можете установить настройку QLocale самостоятельно (без изменения значения для всего приложения).

Например:

QInputDialog* dialog = new QInputDialog();
dialog->setInputMode(QInputDialog::DoubleInput);
dialog->setLocale(QLocale(QLocale::English, QLocale::UnitedKingdom)); // Will use a dot
dialog->exec();
qDebug() << dialog->doubleValue();

dialog->setLocale(QLocale(QLocale::French, QLocale::France)); // Will use a comma
dialog->exec();
qDebug() << dialog->doubleValue();

Смотрите документацию Qt , чтобы настроить QInputDialog (диапазон, заголовок и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...