QInputDialog 專門用於接收用戶輸入,提供多個靜態便利函數,類似 QColorDialog::getColor()。本篇詳細解析 getText() 及其姊妹函數。
getText() 完整範例bool ok;
QString text = QInputDialog::getText(NULL, "Input Dialog",
"Please input your comment",
QLineEdit::Normal,
"your comment",
&ok);
if (ok) {
QMessageBox::information(NULL, "Information",
"Your comment is: <b>" + text + "</b>",
QMessageBox::Yes | QMessageBox::No,
QMessageBox::Yes);
}
static QString 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 | 回顯模式:Normal(預設)、Password、PasswordEchoOnEdit 等 |
text | 輸入框預設文字 |
ok | 輸出參數:用戶按 OK 為 true,Cancel/關閉為 false |
flags | 視窗旗標,控制無邊框、置頂等行為 |
回傳值為用戶輸入的 QString,**必須配合 ok 判斷有效性**。
getInt() / getInteger():整數輸入,含範圍、步長控制getDouble():浮點數輸入,可設定小數位數getItem():下拉選單選擇,支援可編輯模式用法邏輯與 getText() 高度一致,參考 API 即可快速上手。
static,直接用類名呼叫ok 參數為指標,傳 NULL 可忽略,但無法區分用戶取消與輸入空字串text 允許為空 QString()本文出自「豆子空間」博客。