#c #qt #user-interface
#c #qt #пользовательский интерфейс #c
Вопрос:
Я использую Qt 5.6.0.
У меня есть ui
форма, которая повторно переводится при смене языка. В разделе Creator и внутри раздела designer я добавил динамическое свойство со строкой "style"
.
Это динамическое свойство отвечает за настройку правильной таблицы стилей для pushButton
. Проблема в том, что, когда я меняю язык, мое динамическое свойство и связанная с ним таблица стилей не работают.
Я также обнаружил, что функция retranslateUi()
выполняется при смене языка, которая имеет следующее утверждение:
pushButton->setProperty(
"style",
QVariant(
QApplication::translate("MainWindow", "button", 0)
)
);
Вопрос в том, что я могу сделать, чтобы остановить Qt от размещения QApplication::translate()
внутри сгенерированного ui_classname.h
файла.
ИЛИ, если причина QApplication::translate()
не в этом, то как я могу решить проблему?
Ответ №1:
Поскольку вы создали форму в конструкторе, вам необходимо снять флажок «переводимый» на каждом экземпляре свойства в окне редактора свойств:
Комментарии:
1. Спасибо за быстрый ответ. но мне действительно нужно, чтобы кнопка
text
была переведена, но неdynamic property
.2. Это не проблема — у каждого свойства есть свой собственный флажок «переводимый», поэтому вы устанавливаете флажок под
text
свойством, но не под вашим динамическим свойством3. Я обновил изображение, чтобы показать оба свойства
text
androle