iMX6系列應用筆記-iMX6Q開發板QT相關應用講解
一、iMX6開發板如何將QT程序加載到主界面
以下的方法是如何將自己的QT程序加載到桌面的主界面上。我們以添加 music 程序為例:
1、在文件系統中進行修改:
修改 opt/qt4.8.5/demos/embedded/fluidlauncher/config.xml 文件:
打開該文件后,在
<example filename="../../../apps/backlight" name="backlight test"image="screenshots/apps/backlight.png"/>
的下一行添加
<example filename="../../../apps/music"name="MUSIC test"image="screenshots/apps/music.png"/>
添加完成后記得保存。
2、添加應用的桌面圖標:
在 opt/qt4.8.5/demos/embedded/fluidlauncher/screenshots/apps 中添加 music.png圖片,用作主界面識別 music 程序用。
3、添加可執行程序:
在 opt/qt4.8.5/apps 中添加自己編譯的可執行文件 music,并給可執行文件用chmod 命令賦予可執行權限。
4、保存并應用:
如果以上操作是在iMX6Q開發板上進行的,完成后需執行 sync 保存,重啟iMX6Q開發板此時打開主界面,即可看到自己添加的music 可執行程序。也可以在iMX6Q用戶資料的文件系統中修改,修改完成后重新打包并燒寫到iMX6Q開發板上即可。
二、開機自啟動QT應用程序
以下方法是如何將自己做的應用程序設置為iMX6Q開發板啟動直接運行,我們以music程序為例,假設該文件放到了/opt/qt4.8.5/apps 路徑下,客戶自己操作時請根據實際的文件名和路徑。
修改開機啟動腳本
OKMX6 平臺 Qt 系統開機后默認啟動桌面程序 fluidlauncher,若要改成默認啟動其他 Qt應用程序,修改文件系統/etc/rc.d/apps.sh文件,如果在iMX6Q開發板上操作,在超級終端執行以下命令:
root@freescale /$ vi /etc/rc.d/apps.sh
通過vi命令將apps.sh文件修改為以下內容:
#!/bin/sh
#app
#cd /opt/qt4.8.5/demos/embedded/fluidlauncher
#./fluidlauncher -qws &
cd /opt/qt4.8.5/apps
./music -qws &
#apps
保存該文件后,執行sync保存命令;重啟就可以看到默認啟動了剛設置的應用程序。也可以修改文件系統源碼下的etc/rc.d/apps.sh 文件,改動方法同上,然后重新制作文件系統映像并燒寫到iMX6平臺。
三、QT桌面旋轉90度
通過以下方法可以將屏幕上的QT旋轉90度,180度或者是270度。以旋轉90度為例:
修改文件系統中的QT環境變量腳本:
root@freescale /$ vi /etc/rc.d/qt_env.sh
將 export QWS_DISPLAY="linuxfb:mmWidth50:mmHeight130:0"
修改為export QWS_DISPLAY=”Transformed:Rot90:LinuxFb:/dev/fb0”
修改完成后保存該文件并執行sync命令后,重啟iMX6Q開發板即可;有些QT界面不能夠適應旋轉后的寬高等,需要重新編譯調整下qt界面的圖形界面。也可以修改文件系統源碼下的etc/rc.d/qt_env.sh 文件,改動方法同上,然后重新制作文件系統映像并燒寫到平臺。
四、QT程序顯示漢字
有些客戶想要在QT應用界面上顯示中文,可以參考以下方法,要在 Qt 的應用程序中顯示漢字,需滿足2 個條件。
方法1、
漢字庫
如“宋體” simsun.ttc,如果 Qt 找不到漢字庫,或者要顯示的漢字不再 Qt能找到的漢字庫中,可以用 WindowsXp 下的字庫文件,在 windows/fonts 目錄直接拷貝到 Qt 的 lib/fonts 目錄下(/opt/qt4.8.5/lib/fonts); 使用./test –font simsun 即可顯示字體。
漢字編碼
需要將要顯示漢字的編碼告訴 Qt,如果使用 tr 轉換顯示的漢字,則在類的構建函數中添加
Ui->setupUi(this);
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));//tr 使用的編碼
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));//QString 使用的編碼,沒有這一條
//則 QString str(tr(“中文” )),能正常顯示, QString str(“中文” );會顯示亂碼。
另外要特別注意的是這兩條語句放置的位置,在構造函數中,只對當前類有效,放到main 函數中,無效。
這樣,在該類的后面使用 tr 轉換的字符串,就會認為是 utf8 編碼的了。
注:外邊文件夾有例子和字體包
方法2、
漢字庫
如果 Qt 找不到漢字庫,或者要顯示的漢字不再 Qt能找到的漢字庫中, 可以用 Windows 下的字庫文件[ c:\windows\fonts ]目錄直接拷貝到 Qt 的 lib/fonts 目錄下(/opt/qt4.8.5/lib/fonts).此方法需要放置兩個字體文件到fonts下。
漢字編碼
需要將要顯示漢字的編碼告訴 Qt. 本歷程在main函數中指定程序默認字體和字體大小, 并指定漢字編碼默認為utf8格式。
指定程序全局默認顯示中文字體庫, 和字體大小。
顯示中文, 使用 QT內建 tr()轉換函數, 轉換為上文程序默認指定的utf8編碼格式. 減少亂碼的情況。
注:外邊文件夾有例子和字體包
相關產品 >
-
FETMX6Q-C核心板
i.MX6Q核心板板層出不窮,要如何選擇?飛凌解讀i.mx6Q芯片強性能為您推薦四核A9架構的i.MX6Q產品精選,包含iMX6Q 核心板、i.MX6Q 核心板、iMX6Q工業級核心板,歡迎采購。 i.MX6Q核心板基于NXP(原Freescale)Cortex-A9架構的i.MX6Q四核處理器設計,核心板小尺寸核心板搭配獨特的薄款連接器,讓設計隨心所欲!
了解詳情 -
OKMX6Q-C開發板
雙千兆飛凌嵌入式iMX6Q開發板,板對板連接器,纖薄之際,次底板支持iMX6Q和iMX6DL核心板。i.MX6Q開發板與i.MX6DL開發板資源豐富,原理圖、PCB、軟件資源、硬件資源下載,技術支持等。歡迎選購
了解詳情 -
OKMX8MP-C開發板
內置NPU、ISP,AI計算能力高達2.3TOPS|飛凌嵌入式i.MX8MP 系列-NXP iMX8M Plus 開發板 基于高性能低功耗工業級iMX8MP核心板設計,支持多種多種高速通信接口。iMX8MP開發板內置NPU,AI計算能力2.3TOPS,支持4K,支持雙圖像信號處理器(ISP),是一款支持LinuxQT/android操作系統的iMX8MP開發板。
了解詳情 -
FETMX8MP-C核心板
iMX8MP核心板基于 NXP i.MX 8M Plus 處理器設計, 采用4核Cortex-A53 和 Cortex-M7架構。支持雙千兆網口,iMX8MP性能強勁最高運行速率可達2.3TOPS,并且i.MX8MP功耗更低≤2W 。iMX 8M Plus系列專注于機器學習和視覺、高級多媒體以及具有高可靠性的工業自動化。它旨在滿足智慧家庭、樓宇、城市和工業4.0應用的需求。飛凌iMX8MP核心板提供用戶手冊,iMX8MP原理圖,引腳定義等。
了解詳情