QInputDialog Multiple Inputs 輸入多個變量的對話框

 

在以前的博客QInputDialog 使用方法中展現了利用QInputDialog能夠快速經過一行代碼來生成一個輸入框,來獲取用戶的輸入值,那麼若是咱們但願獲取多個輸入值,怎麼辦呢?那麼此時用QInputDialog就無法實現了,咱們必須基於QDialog類從新寫一個類,但是隻是一個簡單的多值輸入框,咱們又不想爲了它而生成對應的.cpp和.h,還有.ui文件,這樣太麻煩了,其實咱們能夠用代碼來添加輸入框和對應的label。html

 

 

若是咱們想生成一個上圖同樣的多個輸入值的文本對話框,能夠使用以下代碼:post

 

QDialog dialog(this);
QFormLayout form(&dialog);
form.addRow(new QLabel("User input:"));
// Value1
QString value1 = QString("Value1: ");
QSpinBox *spinbox1 = new QSpinBox(&dialog);
form.addRow(value1, spinbox1);
// Value2
QString value2 = QString("Value2: ");
QSpinBox *spinbox2 = new QSpinBox(&dialog);
form.addRow(value2, spinbox2);
// Add Cancel and OK button
QDialogButtonBox buttonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel,
    Qt::Horizontal, &dialog);
form.addRow(&buttonBox);
QObject::connect(&buttonBox, SIGNAL(accepted()), &dialog, SLOT(accept()));
QObject::connect(&buttonBox, SIGNAL(rejected()), &dialog, SLOT(reject()));

// Process when OK button is clicked
if (dialog.exec() == QDialog::Accepted) {
    // Do something here
}

 

參考資料:ui

http://stackoverflow.com/questions/17512542/getting-multiple-inputs-from-qinputdialog-in-qtcreatorthis

相關文章
相關標籤/搜索