首頁>技術>

一、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編碼格式. 減少亂碼的情況。

注:外邊資料夾有例子和字型包

12
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Redis從瞭解到掌握:Redis單機資料庫、持久化機制事件