UBUNTU20.04 配置以QT界面程序代替系统界面启动,以及如何在tty模式下以linuxfb形式启动
QT界面代替系统界面启动
xsessions配置
将QT程序直接当成ubuntu的桌面,需要替换掉/usr/share/xsessions
下的原有桌面配置文件。
将原目录的ubuntu.desktop文件后缀改名,重新创建新文件myApp.desktop文件并添加内容
[Desktop Entry]
Name=myapplication
Comment=auto start myapplication
Exec=/bin/bash /home/a/czk200/StartRun.sh #运行脚本
#Exec=/home/a/czk200/CZK #运行程序
Iocn=
Type=Application
QT配置
注意:此方法当QT崩溃时会跳转到登录界面,但是输入密码过后会反复显示登录界面,无法进入任何桌面,那是因为QT程序已经作为了ubuntu的当前桌面,而程序崩溃之后,脚本执行完毕,故ubuntu找不到该显示的桌面了,所以会无限显示登录页面,此时也可以通过Ctrl+Alt+F1~F3进入tty命令模式启动。
桌面模式下启动
QT启动配置脚本,注意权限问题
#!/bin/bashcd /home/a/czk200/
echo 123456 | sudo -S pwdexport DISPLAY=:0.0ulimit -c unlimited
export LD_LIBRARY_PATH=/usr/lib/
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/
export QT_DEBUG_PLUGINS=1
#export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
#export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1sudo chmod 777 CZK./CZK# 启动CZK方式#1,图形界面模式启动
./CZK
tty模式启动
指定 linuxfb 这个选项告诉程序使用帧缓冲来渲染图形,而不是 X11 或 Wayland。linuxfb 是一个低级的显示方式,通常用于没有图形桌面的环境,或当你直接操作显示设备(比如嵌入式设备或没有 X11 的系统)时。
#!/bin/bashcd /home/a/czk200/
echo 123456 | sudo -S pwdexport DISPLAY=:0.0ulimit -c unlimited
export LD_LIBRARY_PATH=/usr/lib/
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/
export QT_DEBUG_PLUGINS=1
#export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
#export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1# 启动 ./CZK
sudo chmod 777 CZK
sudo chmod 666 /dev/fb0
#gdb CZK# 启动CZK方式#2,tty模式启动
sudo chmod 666 /dev/fb0
./CZK --platform linuxfb:fb="/dev/fb0"
问题
1,出现qt.qpa.plugin:Could not load the Qt platform plugin “xcb“问题
运行可能会提示XCB库加载失败问题,有可能是由于XCB插件库指定路径问题,手动指定QT_QPA_PLATFORM_PLUGIN_PATH安装路径
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/
2,出现