在以前的博客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