当前位置: 首页 > news >正文

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,出现

http://www.dtcms.com/a/215873.html

相关文章:

  • Java设计模式之代理模式详解
  • 大型三甲医院更换HIS系统全流程分析与经验考察(上)
  • 数据分析实战1(Excel制作报表)
  • Linux系统编程-DAY06
  • Opigno LMS 3.2.7 安装操作记录
  • pyspark实践
  • 火柴INIBOX专业矿机登场,碾压现有Initverse挖矿设备
  • YOLOv4:目标检测的新标杆
  • Pytest自动化测试框架搭建:Jenkins持续集成
  • AI学习搭档:开启终身学习新时代
  • torch cuda 版本安装
  • 【Java】DelayQueue
  • 5.27 day 30
  • 修改SpringBootApplication类的入参后,引用外部yml的启动命令要修改
  • Spring AI 本地Ollama
  • C++ 中的函数包装:std::bind()、std::function<>、函数指针与 Lambda
  • 一个开源的多播放源自动采集在线影视网站
  • 15.进程间通信(一)
  • c++复习_第一天(引用+小众考点)
  • 2025吉林CCPC 题解(前六题)
  • 【NLP基础知识系列课程-Tokenizer的前世今生第四课】生物信息中的 Tokenizer 策略:如何切开一段基因?
  • 【NLP基础知识系列课程-Tokenizer的前世今生第五课】从静态到可学:Tokenizer 的自适应演化之路
  • C/C++的OpenCV的锐化
  • ojs导入显示空白页错误信息
  • Ubuntu 下搭建ESP32 ESP-IDF开发环境,并在windows下用VSCode通过SSH登录Ubuntu开发ESP32应用
  • 【android bluetooth 协议分析 02】【bluetooth hal 层详解 6】【高通蓝牙hal主要流程介绍-下】
  • Jmeter一些元件使用的详细记录
  • 详解MYSQL索引失效问题排查
  • 如何描述BUG
  • ubuntu22.04 安装 SecureCRT8.7.3