一 项目背景
项目要求使用ubunut系统,由于需要java应用开发需要,选用x86CPU结构开发(哎,用这种开发的产品量就不会大)。需要两个显示输出,一个HDMI用作客户使用,一个输出给到一个8寸的小屏(带触摸和声音)。要求启动后8寸屏显示自己做的应用,客户在这个应用上设置各种参数。
二 硬件选定
选用intel 12代 CPU,16G内存。hdmi输出显示屏,typec输出8寸屏,喇叭和触摸在8寸屏。连线接好两个屏幕,键盘,鼠标。
三 设置方法
1) 设置主屏 副屏;(拓展显示都正常,正常了才进行下面步骤)
a. 可以在设置->显示->选择那个主副屏。
b. 使用xrandr命令 xrandr --output HDMI-1 --auto --primary
2) 设置触摸屏
触摸屏刚开始默认是两个屏都都是接触摸屏的(只要接了触摸屏,也有可能时我用的时typec接口)所以一个触摸屏的对应的时两个显示器。
a 确认触摸屏的设备ID 使用 xinput list 命令,显示touch 的ID 我的设备触摸ID是10;
b 使用 xrandr 命令,获取现在有触摸屏的显示器上的名称(output name)这里是DP-2
c 使用xinput map-to-output 10 DP-2 命令进行正确的触摸屏映射。
3) 然后发现没有作用。发现ubuntu 22.04 使用的gdm3是wayland。可能是我用的8寸屏接口不标准,系统不能辨认和警告。 所以需要切换成xorg(X11)的显示接口协议。直接vim /etc/gdm3/custom.conf ; 把 其中 #WaylandEnable=false 的注释去掉。保存后 输入命令 systemctl restart gdm3 ;重启后显示在设置-》关于-》窗口系统 由原来的Wayland编程X11。
再做一次设置触摸屏。(注意窗口系统更改后,触摸屏和显示的名称和ID都会变化)。
4) 重启后发现触摸屏映射没有起作用,要重新输入xinput map-to-output 命令。
四 开机启动运行qt
1)开机启动
在终端输入命令行:
touch start.sh
chmod +x start.sh
vim start.sh
在start.sh添加以下内容
#!/bin/sh
xinput map-to-output
sleep 2 #必须的,否则系统启动某些模块没有完全启动可能造成应用启动出问题。
nohup /home/xxx/startApp/startApp & #程序是循环的话必须这样,否则关闭终端会关闭程序。而且用全路径目录。
exit 0
2) QT安装
顺便说一下 (使用rufus 3.2制作了一个22.04. lts的系统盘,安装后系统后)安装其他附件(最好还是用命令行,感觉用图形化的慢好多,不知道是否有主观印象)。 图像界面软件和更新里换成ailiyun的源(或更改/apt/soourcelist文件)。然后执行以下命令
sudo apt update
sudo apt upgrade
sudo apt install ubuntu-restricted-extras
#x86的cpu直接安装,不要搞什么源码安装,22.04版本跟18.04的不一样,试了一下发现下面就可以的。
sudo apt-get install build-essential
sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
sudo apt-get install qtcreator
安装后在终端输入命令 qtcreator就可以启动qt 开发环境了。
3) 选用屏幕显示
用一下代码可以获取屏幕并在这个屏幕上显示(我用的是副屏)
QList<QScreen *> list_screen = QGuiApplication::screens();
if( list_screen.size()>1)
{
this->setGeometry(list_screen.at(1)->geometry());
}
QRect rect = list_screen.at(1)->geometry() //拓展屏相当于在分辨率的添加(根据方向)
4) qt显示全屏并固定窗口;
//主窗口全屏无边框显示
setWindowState(Qt::WindowFullScreen);
//widget和控件可使用 w.showFullScreen();
//控件 使用resize()不能超过父widget。
5)开机启动:
qt应用demo写完后可以使用把app执行文件拷贝到startApp文件夹。
在应用程序-》启动程序 添加start.sh作为启动程序。
在设置-》用户 确认不用密码进入桌面。
五 总结:
把主板的上电启动跳线完成。上电后8寸屏就自动运行和显示应用。在设置-》声音 选择带喇叭的屏幕 内置音频。 并把声音设置到最大。主要难点在于两个显示器不一样,一个带触摸屏,一个不带。(还有就是电源电流一定要足,无良js 电源适配器12V5A 到底有多少。主板一个全部电子元件功率不到20W的板子,居然要100W功率要求。不稳定就是因此而产生)
文章来源:https://www.toymoban.com/news/detail-613512.html
文章来源地址https://www.toymoban.com/news/detail-613512.html
到了这里,关于Ubuntu 22.04 设置拓展显示屏设置使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!