Qt 標準對話框之 QInputDialog

2018-10-05 14:50 更新

Qt 學(xué)習(xí)之路(18): Qt 標準對話框之 QInputDialog

這是 Qt 標準對話框的最后一部分。正如同其名字顯示的一樣,QInputDialog 用于接收用戶的輸入。QInputDialog 提供了一些簡單的 static 函數(shù),用于快速的建立一個對話框,正像 QColorDialog提供了 getColor 函數(shù)一樣。

首先來看看 getText 函數(shù):

bool isOK; 
QString text = QInputDialog::getText(NULL, "Input Dialog", 
                                                   "Please input your comment", 
                                                   QLineEdit::Normal, 
                                                   "your comment", 
                                                   &isOK); 
if(isOK) { 
       QMessageBox::information(NULL, "Information", 
                                           "Your comment is: <b>" + text + "</b>", 
                                           QMessageBox::Yes | QMessageBox::No, 
                                           QMessageBox::Yes); 
}

代碼比較簡單,使用 getText 函數(shù)就可以彈出一個可供用戶輸入的對話框:

下面來看一下這個函數(shù)的簽名:

static QString QInputDialog::getText ( QWidget * parent,
                                                      const QString & title,
                                                      const QString & label,
                                                      QLineEdit::EchoMode mode = QLineEdit::Normal,
                                                      const QString & text = QString(),
                                                      bool * ok = 0,
                                                      Qt::WindowFlags flags = 0 )

第一個參數(shù) parent,也就是那個熟悉的父組件的指針;第二個參數(shù) title 就是對話框的標題;第三個參數(shù) label 是在輸入框上面的提示語句;第四個參數(shù) mode 用于指明這個 QLineEdit 的輸入模式,取值范圍是 QLineEdit::EchoMode,默認是 Normal,也就是正常顯示,你也可以聲明為 password,這樣就是密碼的輸入顯示了,具體請查閱 API;第五個參數(shù) text 是 QLineEdit 的默認字符串;第六個參數(shù) ok 是可選的,如果非 NLL,則當(dāng)用戶按下對話框的 OK 按鈕時,這個 bool 變量會被置為 true,可以由這個去判斷用戶是按下的 OK 還是 Cancel,從而獲知這個 text 是不是有意義;第七個參數(shù) flags 用于指定對話框的樣式。

雖然參數(shù)很多,但是每個參數(shù)的含義都比較明顯,大家只要參照 API 就可以知道了。

函數(shù)的返回值是 QString,也就是用戶在 QLineEdit 里面輸入的內(nèi)容。至于這個內(nèi)容有沒有意義,那就要看那個 ok 參數(shù)是不是 true 了。

QInputDialog 不僅提供了獲取字符串的函數(shù),還有 getInteger,getDouble,getItem 三個類似的函數(shù),這里就不一一介紹。

本文出自 “豆子空間” 博客,請務(wù)必保留此出處 http://devbean.blog.51cto.com/448512/194031

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號