我正在使用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作为键盘和鼠标的输入驱动程序
答案 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