日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Qt】Qt登录对话框(设计器实现)

發布時間:2024/4/24 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Qt】Qt登录对话框(设计器实现) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

00. 目錄

文章目錄

    • 00. 目錄
    • 01. 概述
    • 02. 開發環境
    • 03. 程序設計
    • 04. 登錄判斷
    • 05. 程序測試
    • 06.附錄

01. 概述

在彈出對話框中填寫用戶名和密碼,按下登錄按鈕,如果用戶名和密碼均正確則進入主窗口,如果有錯則彈出警告對話框。

02. 開發環境

Windows系統:Windows10

Qt版本:Qt5.15或者Qt6

03. 程序設計

3.1 新建Qt Widgets Application,項目名稱為login,類名和基類保持MainWindow和QMainWindow不變。

3.2 完成項目創建后,向項目中添加新的Qt設計師界面類,模板選擇Dialogwithout Buttons,類名更改為LoginDialog。完成后向界面上添加兩個標簽Label、兩個行編輯器Line Edit和兩個按鈕Push Button,設計界面如下圖所示。

3.3 先選中用戶名后面的行編輯器部件,然后在屬性編輯器中將其objectName屬性更改為usrLineEdit,如下圖所示。下面依次更改其他部件的objectName屬性,密碼后面的行編輯器為pwdLineEdit,登錄按鈕為loginBtn,退出按鈕為exitBtn。

3.4 下面使用另外一種信號和槽的關聯方法來設置退出按鈕。在設計模式下方的信號和槽編輯器(Signals & Slots Editor)中,先點擊左上角的綠色加號添加關聯,然后選擇發送者為exitBtn,信號為clicked(),接收者為LoginDialog,槽為close()。如下圖所示。這樣,當單擊退出按鈕時,就會關閉登錄對話框。

3.5 右擊登錄按鈕,在彈出的菜單中選擇“轉到槽…”,然后選擇clicked()信號并確定。轉到相應的槽以后,添加函數調用:

void LoginDialog::on_loginBtn_clicked() {accept(); }

3.6 main.cpp文件,更改內容如下:

int main(int argc, char *argv[]) {QApplication a(argc, argv);MainWindow w;LoginDialog dlg;if (dlg.exec() == QDialog::Accepted){w.show();return a.exec();}else{return 0;} }

運行程序,按下退出按鈕會退出程序,按下登錄按鈕會關閉登錄對話框,并顯示主窗口。

04. 登錄判斷

4.1 接下來添加代碼來實現使用用戶名和密碼登錄,這里只是簡單將用戶名和密碼設置為了固定的字符串,如果以后學習了數據庫,還可以通過讀取數據庫來獲取用戶名和密碼。到logindialog.cpp文件中將登錄按鈕的單擊信號對應的槽的代碼更改為:

void LoginDialog::on_loginBtn_clicked() {//判斷用戶名和密碼是否正確if (ui->usrLineEdit->text() == tr("tom") &&ui->pwdLineEdit->text() == tr("123456")){accept();}else{QMessageBox::warning(this, tr("警告"), tr("用戶名和密碼錯誤"),QMessageBox::Yes);} }

4.2 下面運行程序,如果輸入用戶名為“tom”,密碼為“123456”,那么可以登錄,如果輸入其他的字符,則會彈出警告對話框,如下圖所示。

4.3 對于輸入的密碼,我們常見的是顯示成小黑點的樣式。下面點擊logindialog.ui文件進入設計模式,然后選中界面上的密碼行編輯器,在屬性編輯器中將echoMode屬性選擇為Password。

這時再次運行程序,可以看到密碼顯示已經改變了。如下圖所示。

當然,除了在屬性編輯器中進行更改,也可以在loginDialog類的構造函數中使用setEchoMode(QLineEdit::Password)函數來設置。

4.4 在行編輯器的屬性欄中還可以設置占位符,就是沒有輸入信息前的一些提示語句。例如將密碼行編輯器的placeholderText屬性更改為“請輸入密碼”,將用戶名行編輯器的更改為“請輸入用戶名”。

運行效果如下圖所示

4.5 對于行編輯器,還有一個問題就是,比如我們輸入用戶名,在前面添加了一個空格,這樣也可以保證輸入是正確的,這個可以使用QString類的trimmed()函數來實現,它可以去除字符串前后的空白字符。下面將logindialog.cpp文件中登錄按鈕單擊信號槽函數中的判斷代碼更改為

void LoginDialog::on_loginBtn_clicked() {//判斷用戶名和密碼是否正確if (ui->usrLineEdit->text().trimmed() == tr("tom") &&ui->pwdLineEdit->text() == tr("123456")){accept();}else{QMessageBox::warning(this, tr("警告"), tr("用戶名和密碼錯誤"),QMessageBox::Yes);}}

4.6 最后,當登錄失敗后,我們希望可以清空用戶名和密碼信息,并將光標定位到用戶名輸入框中。這個可以通過在判斷用戶名和密碼錯誤后添加相應的代碼來實現:

void LoginDialog::on_loginBtn_clicked() {//判斷用戶名和密碼是否正確if (ui->usrLineEdit->text().trimmed() == tr("tom") &&ui->pwdLineEdit->text() == tr("123456")){accept();}else{QMessageBox::warning(this, tr("警告"), tr("用戶名和密碼錯誤"),QMessageBox::Yes);//清空內容,設置定位光標ui->usrLineEdit->clear();ui->pwdLineEdit->clear();ui->usrLineEdit->setFocus();}}

05. 程序測試

06.附錄

代碼下載:登錄對話框(設計器實現).rar

總結

以上是生活随笔為你收集整理的【Qt】Qt登录对话框(设计器实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。