Qt Raspberry Pi 3 Linux 键盘输入

Posted

技术标签:

【中文标题】Qt Raspberry Pi 3 Linux 键盘输入【英文标题】:Qt Raspberry Pi 3 Linux keyboard input 【发布时间】:2021-12-01 05:46:49 【问题描述】:

我使用的是 Raspberry Pi3 板,在 Qt.5.15.11 上,在 QT Creatore 中我编写了一个基于 QWidget 的测试应用程序 - 一个按钮,EditBox,TextLabel,简而言之,HelloWorld。使用交叉编译工具链在装有 Ubuntu 的 PC 上编译。

Raspberry 运行带有 LXDE GUI 的基于 Debian 的 Linux。 Qt 编译时支持 OpenGL。

当我开始我的程序时,我发现了以下内容:

    如果您以用户 (Pi) 身份运行程序,则键盘上的文本可以用俄语和英语输入,切换输入语言可以正常工作。但是如果你以管理员身份运行 (sudo),那么它只会以英文字母打印。

    程序的外观还取决于它是以用户 (Pi) 还是美国管理员 (sudo) 身份启动的。

请告诉我以管理员身份启动程序时如何设置输入俄文字母?

此外,当作为不同用户启动时,Qt 程序的外观取决于什么(窗口大小、框架外观、字体高度......)?

【问题讨论】:

请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:

我在这里找到了我的问题的答案: https://askubuntu.com/questions/872792/what-is-xdg-runtime-dir 简而言之 - root 和用户 (Pi) 具有不同的环境变量。其中,有一些控制我的应用程序的行为。使用 sudo 运行时为了保护环境,我应该使用

sudo -E MyApp   

顺便说一句,我知道以 root 身份运行应用程序,我做得非常非常糟糕。 bcm2835.h 包含有关如何在以用户身份运行时获取权限的说明。它使用 libcap-dev。但是我还没做呢。

【讨论】:

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

Raspberry Pi 上带有 Tslib 的 Qt 5.4 Linux 触摸屏输入因 LinuxFB QPA 平台插件而失败

如何在 Raspberry Pi3 上的 Qt5 上使用 qt-gstreamer 和 qtquick2videosink

无法从 qt5.6 源代码为 raspberry pi 2 构建 qtwebengine

raspberry Pi 3 --- eclipse development establishment

在 Android 和 Raspberry Pi 3 Linux 之间建立 Wifi-Direct 连接

在Android和Raspberry Pi 3 Linux之间建立Wifi-Direct连接