我使用Raspberry Pi3板,在QT .5.15.11上,在QT Creatore中我编写了一个基于QWidget的测试应用程序-一个按钮,EditBox, TextLabel,简而言之,HelloWorld。使用交叉编译工具链在PC上使用Ubuntu编译。
树莓运行基于Debian的Linux和LXDE GUI。Qt是用OpenGL支持编译的。
当我启动程序时,我发现如下内容:
-
如果您以用户(Pi)的身份运行程序,那么键盘上的文本可以用俄语和英语输入,切换输入语言可以正常工作。但是如果您以管理员(sudo)的身份运行,那么它只打印英文字母。
-
程序的外观还取决于它是作为用户(Pi)还是美国管理员(sudo)启动的。
请告诉我以管理员身份启动程序时如何设置俄文字母输入?
还有,Qt程序的外观取决于什么(窗口大小,框架外观,字体高度…)当以不同的用户启动时?
我找到了我的问题的答案:https://askubuntu.com/questions/872792/what-is-xdg-runtime-dir简而言之,root和user (Pi)有不同的环境变量。在别人,还有那些控制我的应用程序的行为。为了保护sudo运行时的环境,我应该使用
sudo -E MyApp
顺便说一下,我知道作为根用户运行应用程序,我做得非常非常糟糕。Bcm2835.h包含关于如何以用户身份运行时获得权限的说明。它使用libcap-dev。但是我还没有做过。