一 項(xiàng)目背景
? ? ? ? 項(xiàng)目要求使用ubunut系統(tǒng),由于需要java應(yīng)用開發(fā)需要,選用x86CPU結(jié)構(gòu)開發(fā)(哎,用這種開發(fā)的產(chǎn)品量就不會(huì)大)。需要兩個(gè)顯示輸出,一個(gè)HDMI用作客戶使用,一個(gè)輸出給到一個(gè)8寸的小屏(帶觸摸和聲音)。要求啟動(dòng)后8寸屏顯示自己做的應(yīng)用,客戶在這個(gè)應(yīng)用上設(shè)置各種參數(shù)。
二 硬件選定
? ? ? ? 選用intel 12代 CPU,16G內(nèi)存。hdmi輸出顯示屏,typec輸出8寸屏,喇叭和觸摸在8寸屏。連線接好兩個(gè)屏幕,鍵盤,鼠標(biāo)。
三 設(shè)置方法
? ? ? 1) 設(shè)置主屏 副屏;(拓展顯示都正常,正常了才進(jìn)行下面步驟)
? ? ? ? ? ? ?a. 可以在設(shè)置->顯示->選擇那個(gè)主副屏。
? ? ? ? ? ? ?b. 使用xrandr命令?xrandr --output HDMI-1 --auto --primary
? ? ?2) 設(shè)置觸摸屏
? ? ? ? ? ? 觸摸屏剛開始默認(rèn)是兩個(gè)屏都都是接觸摸屏的(只要接了觸摸屏,也有可能時(shí)我用的時(shí)typec接口)所以一個(gè)觸摸屏的對(duì)應(yīng)的時(shí)兩個(gè)顯示器。
? ? ? ? ? ?a 確認(rèn)觸摸屏的設(shè)備ID 使用 xinput list 命令,顯示touch 的ID 我的設(shè)備觸摸ID是10;
? ? ? ? ? ?b 使用 xrandr 命令,獲取現(xiàn)在有觸摸屏的顯示器上的名稱(output name)這里是DP-2
? ? ? ? ? ?c? 使用xinput map-to-output 10 DP-2 命令進(jìn)行正確的觸摸屏映射。
? ? 3) 然后發(fā)現(xiàn)沒有作用。發(fā)現(xiàn)ubuntu 22.04 使用的gdm3是wayland??赡苁俏矣玫?寸屏接口不標(biāo)準(zhǔn),系統(tǒng)不能辨認(rèn)和警告。 所以需要切換成xorg(X11)的顯示接口協(xié)議。直接vim /etc/gdm3/custom.conf ; 把 其中 #WaylandEnable=false 的注釋去掉。保存后 輸入命令 systemctl restart gdm3 ;重啟后顯示在設(shè)置-》關(guān)于-》窗口系統(tǒng) 由原來的Wayland編程X11。
? ? ? ? ?再做一次設(shè)置觸摸屏。(注意窗口系統(tǒng)更改后,觸摸屏和顯示的名稱和ID都會(huì)變化)。
? 4) 重啟后發(fā)現(xiàn)觸摸屏映射沒有起作用,要重新輸入xinput map-to-output 命令。
四 開機(jī)啟動(dòng)運(yùn)行qt
? ? ? ? 1)開機(jī)啟動(dòng)?
? ? ? ? 在終端輸入命令行:?
????????touch start.sh? ? ?
? ? ? ? chmod +x start.sh
? ? ? ? vim start.sh
? ? ? ? ?在start.sh添加以下內(nèi)容
? ? ? ? ?#!/bin/sh
? ? ? ? ? xinput map-to-output
? ? ? ? ? sleep 2? ? #必須的,否則系統(tǒng)啟動(dòng)某些模塊沒有完全啟動(dòng)可能造成應(yīng)用啟動(dòng)出問題。
? ? ? ? ?nohup /home/xxx/startApp/startApp &? ?#程序是循環(huán)的話必須這樣,否則關(guān)閉終端會(huì)關(guān)閉程序。而且用全路徑目錄。
? ? ? ? ?exit 0
? ? ? ? 2) QT安裝
? ? ? ? ? ? ? 順便說一下 (使用rufus 3.2制作了一個(gè)22.04. lts的系統(tǒng)盤,安裝后系統(tǒng)后)安裝其他附件(最好還是用命令行,感覺用圖形化的慢好多,不知道是否有主觀印象)。 圖像界面軟件和更新里換成ailiyun的源(或更改/apt/soourcelist文件)。然后執(zhí)行以下命令
? ? ? ? ? ? sudo apt update
? ? ? ? ? ? ?sudo apt upgrade
? ? ? ? ? ? ?sudo apt install ubuntu-restricted-extras?
?#x86的cpu直接安裝,不要搞什么源碼安裝,22.04版本跟18.04的不一樣,試了一下發(fā)現(xiàn)下面就可以的。?
????????????????sudo apt-get install build-essential
????????????????sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
????????????????sudo apt-get install qtcreator
安裝后在終端輸入命令 qtcreator就可以啟動(dòng)qt 開發(fā)環(huán)境了。
? 3) 選用屏幕顯示?
? ? ? ? ? 用一下代碼可以獲取屏幕并在這個(gè)屏幕上顯示(我用的是副屏)
? ? ? ? ? ?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()? ?//拓展屏相當(dāng)于在分辨率的添加(根據(jù)方向)
4) qt顯示全屏并固定窗口;
????????//主窗口全屏無邊框顯示
????????setWindowState(Qt::WindowFullScreen);
? ? ? ? //widget和控件可使用?w.showFullScreen();?
? ? ? ? //控件 使用resize()不能超過父widget。
5)開機(jī)啟動(dòng):
???????? qt應(yīng)用demo寫完后可以使用把a(bǔ)pp執(zhí)行文件拷貝到startApp文件夾。
? ? ? ? ? 在應(yīng)用程序-》啟動(dòng)程序 添加start.sh作為啟動(dòng)程序。
? ? ? ? ? 在設(shè)置-》用戶 確認(rèn)不用密碼進(jìn)入桌面。
?五?總結(jié):
? ? ? 把主板的上電啟動(dòng)跳線完成。上電后8寸屏就自動(dòng)運(yùn)行和顯示應(yīng)用。在設(shè)置-》聲音 選擇帶喇叭的屏幕 內(nèi)置音頻。 并把聲音設(shè)置到最大。主要難點(diǎn)在于兩個(gè)顯示器不一樣,一個(gè)帶觸摸屏,一個(gè)不帶。(還有就是電源電流一定要足,無良js 電源適配器12V5A 到底有多少。主板一個(gè)全部電子元件功率不到20W的板子,居然要100W功率要求。不穩(wěn)定就是因此而產(chǎn)生)
? ? ? ?
? ? ? ? ? ? ? ?
? ? ? ? ? ?文章來源:http://www.zghlxwxcb.cn/news/detail-613512.html
? ? ? ? ??文章來源地址http://www.zghlxwxcb.cn/news/detail-613512.html
到了這里,關(guān)于Ubuntu 22.04 設(shè)置拓展顯示屏設(shè)置使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!