Название: Определение раскладки клавиатуры Отправлено: Swa от Январь 15, 2010, 22:02 Здравствуйте.
Возникла проблема определения раскладки клавиатуры. Вешаю на виджет keyPressEvent и в нём делаю вывод: Код: qDebug() << QLocale::languageToString(QLocale::system().language()); QApplication::keyboardInputLocale ().language() выдаёт "C", что согласно справке The "C" locale is English/UnitedStates.. Причём при изменении раскладки средствами Alt+Shift язык ввода меняется, но qDebug выдаёт эти же строки. Что посоветуете? Виджет: QLineEdit Система: Linux Название: Re: Определение раскладки клавиатуры Отправлено: Swa от Январь 16, 2010, 18:08 Просьба ко всем, у кого linux, потестите мой пример, у кого как работает, пожалуйста.
Название: Re: Определение раскладки клавиатуры Отправлено: zenden от Январь 16, 2010, 19:25 Вот здесь у людей та же проблема http://stackoverflow.com/questions/1277093/qt-keyboard-layout
Название: Re: Определение раскладки клавиатуры Отправлено: Swa от Январь 16, 2010, 20:47 Вот здесь у людей та же проблема http://stackoverflow.com/questions/1277093/qt-keyboard-layout Да, но это редкая проблема, вот тут нашёл багрепорт, похоже такое только у меня и этого парня происходитhttp://bugreports.qt.nokia.com/browse/QTBUG-3631 Название: Re: Определение раскладки клавиатуры Отправлено: crossly от Январь 16, 2010, 23:49 не только.... у меня та же проблема.... причем на сколько я помню на 4.5 такой проблемы не было.... по крайней мене на винде...
Название: Re: Определение раскладки клавиатуры Отправлено: Swa от Январь 17, 2010, 00:08 crossly, да, на винде я протестировал, работает правильно. Проблема, похоже, только в линуксе.
Название: Re: Определение раскладки клавиатуры Отправлено: crossly от Январь 17, 2010, 00:19 какая версия Qt... ?? у меня из git .... не работает и на винде... :)... хотя на 4.5 работало ....
Название: Re: Определение раскладки клавиатуры Отправлено: Swa от Январь 17, 2010, 00:53 У меня 4.5.0
Название: Re: Определение раскладки клавиатуры Отправлено: Karl-Philipp от Февраль 09, 2011, 13:35 Всем привет.
Не получается определить текущую раскладку клавиатуры. Все время выдает ru_Ru. Код
По приведенной выше ссылке http://bugreports.qt.nokia.com/browse/QTBUG-3631, сказано, что баг устранен в версии 4.7.0 У меня же Qt 4.7.0 из SDK, Windows 7. Помогите, пожалуйста, разобраться. Название: Re: Определение раскладки клавиатуры Отправлено: SABROG от Февраль 10, 2011, 11:51 У меня же Qt 4.7.0 из SDK, Windows 7. Пофиксили видимо только для линукса. Под виндой для 4.7.1 таже проблема http://bugreports.qt.nokia.com/browse/QTBUG-15816Помогите, пожалуйста, разобраться. Название: Re: Определение раскладки клавиатуры Отправлено: Karl-Philipp от Февраль 10, 2011, 14:58 Спасибо, SABROG.
Сделал вот так: Код Скажите, пожалуйста, правильно? Название: Re: Определение раскладки клавиатуры Отправлено: kuzulis от Февраль 10, 2011, 16:44 1. Можно попробовать вызывать GetKeyboardLayout с нулём.
2. Вместо if/else нарисовать switch/case 3. Или вместо GetKeyboardLayout попробовать GetKeyboardLayoutName Название: Re: Определение раскладки клавиатуры Отправлено: Karl-Philipp от Февраль 11, 2011, 22:30 Спасибо, kuzulis.
п.2. Учел, а чем не устроил вариант с WinAPI функциями, которые я предложил? Аналогичное делают + работают :) Название: Re: Определение раскладки клавиатуры Отправлено: kuzulis от Февраль 13, 2011, 13:31 Цитировать п.2. Учел, а чем не устроил вариант с WinAPI функциями, которые я предложил? Аналогичное делают + работают Улыбающийся Просто, если б не заработала GetKeyboardLayout - то можно было бы попробовать GetKeyboardLayoutName. Типа для GetKeyboardLayoutName не нужно никаких входных параметров писать. А хотя - хз, если честно. |