retranslateUi () очищает текст QLabel - PullRequest
       4

retranslateUi () очищает текст QLabel

3 голосов
/ 15 сентября 2011

Мое приложение на основе qt4 динамически меняет язык графического интерфейса, вызывая функцию retranslateUi(). Он работает как талисман, но когда он обрабатывает QLabel, текст которого изменяется программой, он пытается перевести оригинальный текст - тот, который указан в Qt Designer, а не тот, который установлен моей программой.

Я понимаю, что это происходит потому, что retranslateUi() генерируется автоматически в процессе сборки, поэтому он не может знать о моих изменениях, но я бы предпочел полностью пропустить такие QLabel. Есть ли способ заставить Qt пропустить определенные виджеты в retranslateUi()? Или же я могу отключить изменение содержимого для QLabel в моей программе?

Я знаю, что могу подкласс QLabel и переопределением setText() решить эту проблему, но я предпочитаю использовать стандартный QLabel, чтобы иметь возможность манипулировать им с помощью Qt Designer.

1 Ответ

6 голосов
/ 15 сентября 2011

Как я помню, в Designer вы можете снять галочку с QLabel, если он будет переведен.По умолчанию это так.Выберите метку, которую вы не хотите переводить, в редакторе свойств выделите свойство «текст», разверните его и снимите флажок «перевести».Затем вы должны снова сгенерировать файл ui _ *. H.После этого ваш ярлык не должен быть в коде retranslateUi

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