Qt / Embedded: Caps Lock не работает

Я занимаюсь разработкой приложения с использованием Qt / Embedded 4.8.4 (привязки c ++). Я обнаружил, что включение блокировки прописными буквами не приводит к вводу символов заглавными буквами внутри поля редактирования. Вот простая программа для вашей справки, которая показывает то же поведение.

#include <QApplication>
#include <QMainWindow>
#include <QLineEdit>

int main(int argc, char **argv)
{
QApplication a(argc, argv);
QMainWindow *win = new QMainWindow(0);
win->move(50,50);
win->resize(500, 500);
win->show();

QLineEdit *edit = new QLineEdit(win);
edit->move(30, 30);
edit->resize(100, 30);
edit->show();

return a.exec();
}

В окне редактирования символы, которые вы вводите, будут отображаться в маленьком регистре, независимо от того, установлено ли состояние блокировки прописных букв

Re: Для вашей информации я использую LinuxInput в качестве драйвера ввода для клавиатуры и мыши

1

Решение

Возможно, что карта ключей, используемая Qt Window Server (QWS), имеет неправильную настройку для ключа Caps Lock (код клавиши 58). У меня была эта проблема, и я смог ее исправить следующим образом.

Чтобы создать собственное отображение клавиатуры, я следовал методу, описанному в этом посте: Qt Embedded для Linux. Переключение раскладки клавиатуры

Однако перед запуском kmap2qmap я отредактировал файл kmap так, чтобы код клавиши 58 использовал Caps_Lock, а не CtrlL_Lock

Затем я передал сгенерированный файл qmap в качестве ввода в драйвер клавиатуры:

export QWS_KEYBOARD="LinuxInput:keymap=/path/to/xx.qmap"./myApp -qws
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]