Я пытаюсь создать приложение с живым переводом текста в структуре меню большой древовидной модели так же, как: https://code.qt.io/cgit/qt/qtbase.git/tree/examples/widgets/itemviews/simpletreemodel?h= 5.15а>
Данные элемента представляют собой QString, который переводится как
root = new MenuObject(tr("Main menu"));
И дети добавляются как:
root->appendChild(new MenuObject(tr("Test 1")))
.appendChild(new MenuObject(tr("Test 2")))
Я использую QML, чтобы показать их, с qmllistpoprerty, чтобы показать эти меню, например:
Q_PROPERTY(QQmlListProperty<MenuObject> list READ getList NOTIFY listChanged);
QML — это простой ListView с меткой делегата, показывающей описание MenuObjects с q_property:
Q_PROPERTY(QString description READ getDescription CONSTANT);
Чтобы изменить язык, я использую функцию, загружающую файл перевода в переводчик, а затем:
installTranslator(translator);
engine.retranslate();
Теперь это работает для простых q_properties, таких как:
Q_PROPERTY(QString header READ getHeader NOTIFY listChanged);
Где
QString MainMenu::getHeader(){
return tr("Header");
}
Но я НЕ МОГУ заставить переводы работать для элементов в древовидной модели. Любая помощь приветствуется.
QQmlListProperty
? Модели изначально поддерживают обработку изменения данных и т. д. - person folibis   schedule 18.08.2020