Qt 中的键盘输入

Posted

技术标签:

【中文标题】Qt 中的键盘输入【英文标题】:Keyboard input in Qt 【发布时间】:2011-09-19 13:46:08 【问题描述】:

我正在开发一个在嵌入式 Linux 上运行的 Qt 应用程序。我对这个 Qt 业务很陌生,因为我刚开始一个月前,所以要明白我不是那种面向对象的 ...:P

我在运行 Linux 的目标上运行 Qt 应用程序。 Qt 文档http://doc.qt.io/archives/qt-4.7/qt-embedded-pointer.html 说我们必须通过导出某些变量来启用触摸屏、USB 键盘、小键盘等。即,

export QWS_MOUSE_PROTO=tslib:/dev/input/event1
export QWS_KEYBOARD="linuxinput:/dev/input/event0 usb:/dev/input/event2"

嗯,你可以猜到,第一行将 QT 中的鼠标设备设置为触摸屏。 “tslib”是触摸屏库,“event1”是代表触摸屏的节点。同样,第二行是板载键盘(event0)和USB键盘(event2)。

现在,触摸屏运行良好。但问题出在任一键盘上。如果我不导出第二个变量,即 QWS_KEYBOARD ,那么应用程序运行良好。但是,如果我确实导出了第二个变量,应用程序一启动就会进入停止状态 (SIGSTOP)。从 ps 输出可以看出这一点。我不能让它与 SIGCONT 一起工作。

我将尝试从源代码重新配置 Qt。欢迎任何想法。

【问题讨论】:

您是否尝试过使用 QWS_KEYBOARD 只列出一个设备(即export QWS_KEYBOARD="linuxinput:/dev/intput/event0")? 是的,我有,结果相同。我不明白为什么它会进入停止状态。显然它与这个 QWS_KEYBOARD ,......只是无法弄清楚是什么。 【参考方案1】:

不敢相信,但将 Q​​WS_KEYBOARD 变量设置为 null 解决了问题。 在 Qt 开发人员常见问题解答http://developer.qt.nokia.com/faq/answer/why_doesnt_my_keyboard_work_after_i_have_done_an_export_qws_keyboard_dev_tt

中找到它
export QWS_KEYBOARD=""

好吧,它并没有完全解决问题,因为我仍然必须将本机键盘与 USB 键盘一起包括在内。

无论如何,我可以使用箭头/TAB 键移动到字段。文本输入效果很好。虽然 CAPS-LOCK 和 NUM-LOCK 似乎不起作用。 SHIFT 有效。我可以通过 Ctrl+Alt+Bkspce 终止应用程序。所以,就目前而言,我至少可以输入文字。

如果有任何改进会发布。

【讨论】:

遗憾的是,要求被取消了,所以这个主题的工作从未进行过:( 仅供参考,虽然还没有解决 - 我相信我找到了我的问题:bugreports.qt.io/plugins/servlet/mobile#issue/QTBUG-9843

以上是关于Qt 中的键盘输入的主要内容,如果未能解决你的问题,请参考以下文章

Qt中的键盘事件,以及焦点的设置(比较详细)

Symbian 模拟键盘输入

其他语言的 Qt 键盘输入

PyQt5-Qt Designer简易的数字键盘输入

Qt Raspberry Pi 3 Linux 键盘输入

qt for android 怎样弹出键盘