戴 軍
(江蘇開放大學江蘇城市職業學院 江蘇·南京 210000)
我們常用QtCreator來設計嵌入式GUI并可以仿真調試,如果調試通過就可以將GUI移植到目標機中使用。我們提出假設即通過Ubuntu中QtCreator設計GUI并通過RHEL編譯移植到S5pv210目標機中運行,可通過以下實驗驗證其可行性。
運行QtCreator-新建文件或工程,選擇Qt控件項目-QtGui應用,設置項目名稱為mainWidget,設置類名為Widget,基類為Qwidget,頭文件為widget.h,源文件為widget.cpp,界面文件為widget.ui,接著新建Qt設計師界面類,選擇界面模板為Dialog without Buttons,設置類名為loginDlg,頭文件為logindlg.h,源文件為logindlg.cpp,界面文件為logindlg.ui。
在界面文件logindlg.ui中放置“用戶名”和“登錄密碼”兩個Text Edit控件,在“用戶名”和“登錄密碼”后面分別放置兩個LineEdit控件,并將其objectName分別命名為usrLineEdit和pwdLineEdit,放置“登錄”和“退出”兩個Push Button控件,并將其objectName分別命名為loginBtn和exitBtn。單擊菜單“編輯”-“編輯信號/槽”或者按下快捷鍵F4,鼠標左鍵按住并拖動logindlg.ui界面中的退出按鈕到空白處并釋放,在配置連接設置對話框中將loginDlg(QDialog)選擇為close(),然后單擊確定退出設置。單擊菜單“編輯”-“編輯控件”或者按下快捷鍵F3回到編輯控件狀態,鼠標右鍵點擊ogindlg.ui界面中的登錄按鈕在彈出的菜單中選擇“轉到槽”,在轉到槽設置對話框的選擇信號中選擇clicked()并點擊確定進入click事件的槽函數,在其中寫入代碼accept();為使密碼顯示為黑點以及移除字符串開頭和結尾的空白字符,判斷用戶名和密碼輸入是否正確,同時保證輸入錯誤的情況下,重新進入登錄對話框并清空用戶名和密碼且光標自動跳轉到用戶名輸入框,可以將logindlg.cpp代碼修改如下:


如圖1所示,執行以上程序,就可以實現輸入用戶名和密碼正確的情況下,點擊登錄按鈕就可以進入主窗口并顯示qrs.png的圖片,如果輸入錯誤,則彈出出錯提示對話框。點擊退出按鈕退出程序。

圖1:mainWidget調試運行界面
如圖2所示,將Ubuntu中的mainWidget工程文件夾拷貝至RHEL根目錄下,將RHEL中的qmake程序拷貝至mainWidget工程文件目錄中,運行/mainWidget/qmake指令生成makefile文件,運行make編譯生成可執行目標文件mainWidget。

圖2:mainWidget編譯
編寫設置環境變量以及運行 mainWidget的腳本文件run.sh,腳本文件run.sh程序如下:


將可執行目標文件mainWidget、文件目錄img和run.sh打包壓縮下載到S5pv210實驗箱中并解壓運行run.sh,效果如圖3所示。

圖3:mainWidget移植和運行效果
通過基于 QtCreator的嵌入式 GUI程序設計以及基于RHEL嵌入式 GUI程序編譯和移植,可以看到此方案對于S5pv210的應用是完全可行的,可為類似的GUI設計及移植提供必要的啟示。之所以使用QtCreator來進行嵌入式GUI設計,是考慮到QtCreator集成了特定于Qt的功能,對Qt類結構可一目了然,集成了Qt Designer可視化布局和格式構建器,只需要單擊一下就可以生成和運行Qt項目。