【问题标题】:Qt/Embedded: Caps Lock is not workingQt/Embedded:大写锁定不起作用
【发布时间】:2014-04-09 11:54:56
【问题描述】:

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

【问题讨论】:

  • 按 Shift 有效吗?

标签: c++ linux qt qt4 qtembedded


【解决方案1】:

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

为了生成自定义键盘映射,我遵循了这篇文章中的方法:Qt Embedded for Linux. Keyboard layout switching

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多