Qt / Embedded:Caps Lock无效

时间:2014-04-09 11:54:56

标签: c++ linux qt qt4 qtembedded

我正在使用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 个答案:

答案 0 :(得分:0)

Qt Window Server(QWS)使用的键映射可能是大写锁定键(键码58)的设置错误。我有这个问题,并能够按如下方式修复它。

要生成自定义键盘映射,请按照此帖子中的方法进行操作:Qt Embedded for Linux. Keyboard layout switching

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

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

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