Qt/Embedded: Caps Lock is not working



我正在开发一个使用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();
}

在编辑框中,无论您设置了大写锁定状态,您正在键入的字符都将以小写形式出现

回复:我正在使用LinuxInput作为键盘和鼠标的输入驱动程序

Qt Window Server(QWS)使用的密钥映射可能对caps Lock密钥(密钥代码58)设置错误。我遇到了这个问题,并能够按照如下方式进行修复。

为了生成自定义键盘映射,我遵循了本文中的方法:QtEmbeddedforLinux。键盘布局切换

但是,在运行kmap2qmap之前,我编辑了kmap文件,以便键代码58使用Caps_Lock而不是CtrlL_Lock

然后,我将生成的qmap文件作为输入传递给键盘驱动程序:

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

相关内容

最新更新