這是Qt標准對話框的最後一部分。正如同其名字顯示的一樣,QInputDialog用於接收用戶的輸入。QInputDialog提供了一些簡單的static函數,用於快速的建立一個對話框,正像QColorDialog提供了getColor函數一樣。
首先來看看getText函數:
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函數就可以彈出一個可供用戶輸入的對話框:
下面來看一下這個函數的簽名:
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 )
第一個參數parent,也就是那個熟悉的父組件的指針;第二個參數title就是對話框的標題;第三個參數label是在輸入框上面的提示語句;第四個參數mode用於指明這個QLineEdit的輸入模式,取值范圍是QLineEdit::EchoMode,默認是Normal,也就是正常顯示,你也可以聲明為password,這樣就是密碼的輸入顯示了,具體請查閱API;第五個參數text是QLineEdit的默認字符串;第六個參數 ok是可選的,如果非NLL,則當用戶按下對話框的OK按鈕時,這個bool變量會被置為true,可以由這個去判斷用戶是按下的OK還是Cancel,從而獲知這個text是不是有意義;第七個參數flags用於指定對話框的樣式。
雖然參數很多,但是每個參數的含義都比較明顯,大家只要參照API就可以知道了。
函數的返回值是QString,也就是用戶在QLineEdit裡面輸入的內容。至於這個內容有沒有意義,那就要看那個ok參數是不是true了。
QInputDialog不僅提供了獲取字符串的函數,還有getInteger,getDouble,getItem三個類似的函數,這裡就不一一介紹。
出處:http://devbean.blog.51cto.com/448512/219338