Если вы хотите изменить языковой стандарт, используемый в конкретном элементе управления, вы можете экспортировать строковое свойство в модель C ++:
class MyModel : public QObject
{
Q_OBJECT
Q_PROPERTY(QString editLocale MEMBER editLocale_) //more elaborate variants are possible
private:
QString editLocale_;
}
Экспорт модели в main ():
QQuickView view;
MyModel theModel;
view.rootContext()->setContextProperty("theModel", &theModel);
Используйте его в QML следующим образом:
CheckBox {
onClicked: {
checked = !checked
if(checked)
theModel.editLocale = "nl_NL"
else
theModel.editLocale = "en_US"
}
SpinBox { //this is derived from the QtQuick.Controls 2.5 Control type you are looking at
locale: Qt.locale(theModel.editLocale)
to: 2000
value: 1000
}
В этом примере вы должны увидеть переключатель разделителя тысяч между точкой и запятой при переключении флажка.
Предупреждение : этот код не проверен, поскольку моя среда не распознает свойство locale