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