iMX6系列應用筆記-iMX6Q開發板QT相關應用講解

原創 作者 iMX6Q 2021-01-20 13:30:00 iMX6 iMX6q
本文以飛凌嵌入式OKMX6Q/DL-C開發板為基礎講解,操作系統為Linux3.0.35,其它品牌產品請參考使用,本文主要介紹了iMX6Q開發板如何將QT程序加載到主界面、iMX6Q開機自啟動QT應用程序、QT桌面旋轉90度以及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四核處理器設計,核心板小尺寸核心板搭配獨特的薄款連接器,讓設計隨心所欲!

    了解詳情
    FETMX6Q-C核心板
  • OKMX6Q-C開發板

    雙千兆飛凌嵌入式iMX6Q開發板,板對板連接器,纖薄之際,次底板支持iMX6Q和iMX6DL核心板。i.MX6Q開發板與i.MX6DL開發板資源豐富,原理圖、PCB、軟件資源、硬件資源下載,技術支持等。歡迎選購

    了解詳情
    OKMX6Q-C開發板
  • OKMX8MP-C開發板

    內置NPU、ISP,AI計算能力高達2.3TOPS|飛凌嵌入式i.MX8MP 系列-NXP iMX8M Plus 開發板 基于高性能低功耗工業級iMX8MP核心板設計,支持多種多種高速通信接口。iMX8MP開發板內置NPU,AI計算能力2.3TOPS,支持4K,支持雙圖像信號處理器(ISP),是一款支持LinuxQT/android操作系統的iMX8MP開發板。

    了解詳情
    OKMX8MP-C開發板
  • 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原理圖,引腳定義等。
    了解詳情
    FETMX8MP-C核心板

推薦閱讀 換一批 換一批