1. 程式人生 > >QT之創建登錄對話框

QT之創建登錄對話框

QT 登錄對話框

之前我們介紹了對話框的相關知識,那麽今天我們就來創建一個登錄對話框,包含用戶名和密碼的這麽一個可復用的模板。

需求分析:登錄對話框是應用程序中的常用部件。可復用軟件部件,獲取用戶名和密碼。最終我們將要做成如下所示的界面:
技術分享圖片
登錄對話框的設計與架構關系如圖所示:
技術分享圖片
我們 Widget 的頭文件和 .cpp 文件實現如下所示:
技術分享圖片技術分享圖片
登錄界面的頭文件如下所示:
技術分享圖片
其中界面按鈕的實現程序如下:
技術分享圖片
Login 和 Cancel 的點擊響應我們就做了打印函數名。
最終構建運行得到的效果圖如下所示:
技術分享圖片
我們現在已經做出大概界面了。但是還存在幾個問題:密碼是明文,它的界面大小還是可變的。再者我們在登錄和取消的時候只是加了打印語句,並沒有做相應的處理。那麽我們下來就要來解決這幾個問題。

我們在幫助中搜索 QLineEdit 關鍵字,那麽就會看見帶有 Password 的屬性,如下圖所示:
技術分享圖片
那麽我們在 QLoginDialog 函數中加上 PwdEdit.setEchoMode(QLineEdit::Password)這句。我們再次構建運行,得到如下所示:
技術分享圖片就在
那麽密碼顯示的問題我們已經解決,我們再加上之前學過的 setFixedSize函數,那麽它的窗口的大小就不可變了。
那麽如果我們想要獲取用戶輸入的用戶名和密碼怎麽做呢?就是如何在兩個不同對話框間傳遞數據。通過附加的成員變量和成員函數完成不同對話框間的數據傳遞!如下:
技術分享圖片
我們在登錄和取消響應的函數中做如下處理:
技術分享圖片
m_user後面的 .trimmed() 屬性意思是去除用戶名中的空格。我們在到 Widget 中的 TestBtn_Clicked 函數中添加如下代碼:
技術分享圖片
那麽此時我們就能獲取到用戶名和密碼了,構建運行下。效果圖如下所示:
技術分享圖片
如果我們點擊的是登錄,則會打印出用戶名和密碼,而且點擊完,登錄對話框則會消失。如果點擊的是取消,則不會打印什麽東西,對話框消失。
本節我們先學習到這了,基本目的已經達成。我們通過本節總結如下:登錄對話框可作為可復用對的軟件部件進行開發;對話框之間是通過成員變量和成員函數進行數據的傳遞的,具體來說就是將用戶數據保存在私有成員變量中,通過共有成員函數進行數據的傳遞。
那麽後面我們會進行進一步的開發:例如檢查用戶名和密碼是否為空,就是為空時進行錯誤提示; 登錄對話框裏面的隨機碼的驗證,當驗證碼輸入錯誤時進行提示,驗證碼隨機刷新等。 我們會在後面繼續進行試驗。

以上內容來自狄泰軟件學院的QT教程,歡迎大家一起來學習,可以加我QQ:243343083,一起學習。狄泰技術交流群:199546072 

QT之創建登錄對話框