Что такое свойство локали в qml контроле?Как это использовать? - PullRequest
0 голосов
/ 12 июня 2019

Я хочу ознакомиться со свойством locale компонента qml controle, я понимаю, что оно используется для методов Qlocale, но я не могу найти хорошего примера

1 Ответ

1 голос
/ 12 июня 2019

Если вы хотите изменить языковой стандарт, используемый в конкретном элементе управления, вы можете экспортировать строковое свойство в модель 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

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