Здравствуйте, гость ( Вход | Регистрация )
Litkevich Yuriy | Дата 2.11.2010, 15:10 |
А может подскажете алтернативный метод? попробуй контролировать событие QEvent::KeyboardLayoutChange |
|
kwisp | Дата 2.11.2010, 14:54 |
По keyboardInputLocale() действительно баг ч.т.д. ждём все вместе от CodeHunter`а рабочий пример. |
|
Мотов Юрий | Дата 2.11.2010, 14:49 |
По keyboardInputLocale() действительно баг http://bugreports.qt.nokia.com/browse/QTBU...%3Aall-tabpanel А может подскажете алтернативный метод? Видел где-то совет воспользоваться WinAPI, сейчас буду пытаться. И ещё видел что-то с xkb, не смог понять что это такое и счем едят.. |
|
kwisp | Дата 2.11.2010, 14:46 |
void MainWindow::changeEvent(QEvent *e) { QMainWindow::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; } } не пойму если сообщение о смене языка уже пришло зачем ui->retranslateUi(this); CodeHunter, можешь полностью рабочий компилируемый пример выложить ? |
|
Litkevich Yuriy | Дата 2.11.2010, 14:29 |
CodeHunter, ты не приводил код отлавливающий смену раскладки. ты привёл код который принудительно переводит интерфейс. За каким лешим ты его привёл? Здесь же мы обрабатываем пришедшее сообщение от системы и обновляем все данные в приложении в твоём коде не обновляются все данные приложения. Это по тому что сообщение о смене раскладки клавиатуры не доходит до формы покажи место в документции, где упоминает, что в Qt есть сообщение о смене раскладкиты чё несёшь вообще? |
|
CodeHunter | Дата 2.11.2010, 14:25 |
ним ни нужно обновлять ни каких данных. Нам нужно узнать текущую раскладку клавиатуры. Где в твоем коде это делается? Сначала посмотри на мой ответ, а потом задавай такие вопросы . ![]() Цитата keyboardInputLocale() пробовал, у меня всегда возвращает RU_ru независимо от выбранной раскладки. .keyboardInputLocale() пробовал, у меня всегда возвращает RU_ru независимо от выбранной раскладки. Это по тому что сообщение о смене раскладки клавиатуры не доходит до формы (то есть не обрабатывается). Без этой обработки приложение не знает о смене раскладки клавиатуры, а возвращает ту раскладку которая была при запуску программы. Здесь же мы обрабатываем пришедшее сообщение от системы и обновляем все данные в приложении |
|
igor_bogomolov | Дата 2.11.2010, 12:37 |
Здесь же мы обрабатываем пришедшее сообщение от системы и обновляем все данные в приложении нам не нужно обновлять никаких данных. Нам нужно узнать текущую раскладку клавиатуры. Где в твоем коде это делается? |
|
CodeHunter | Дата 2.11.2010, 11:37 |
CodeHunter, ты не ответил на мой вопрос Здесь же мы обрабатываем пришедшее сообщение от системы и обновляем все данные в приложении |
|
Litkevich Yuriy | Дата 2.11.2010, 11:19 |
CodeHunter, ты не ответил на мой вопрос | |
CodeHunter | Дата 1.11.2010, 21:19 |
Цитата keyboardInputLocale() пробовал, у меня всегда возвращает RU_ru независимо от выбранной раскладки. Это по тому что сообщение о смене раскладки клавиатуры не доходит до формы (то есть не обрабатывается). Без этой обработки приложение не знает о смене раскладки клавиатуры, а возвращает ту раскладку которая была при запуску программы. Здесь же мы обрабатываем пришедшее сообщение от системы и обновляем все данные в приложении |
|
Просмотр темы полностью (откроется в новом окне) | |
![]() |
Текстовая версия | Сейчас: 20.4.2025, 22:37 |