Остановить Qt от трансляции динамических свойств

#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:

Поскольку вы создали форму в конструкторе, вам необходимо снять флажок «переводимый» на каждом экземпляре свойства в окне редактора свойств:

флажок quot;переводимыйquot;

Комментарии:

1. Спасибо за быстрый ответ. но мне действительно нужно, чтобы кнопка text была переведена, но не dynamic property .

2. Это не проблема — у каждого свойства есть свой собственный флажок «переводимый», поэтому вы устанавливаете флажок под text свойством, но не под вашим динамическим свойством

3. Я обновил изображение, чтобы показать оба свойства text and role