Я хотел бы получить набор из четырех значений из четырех входных меток в QtCreator. Я хотел бы использовать QInputDialog
, но он содержит только один inputbox
как стандартный. Итак, как я могу добавить четыре ярлыка и четыре строки-редактирования и получить от него значение?
Получение нескольких входов из QInputDialog в QtCreator
Ответ 1
Нет. Документация довольно понятна:
Класс QInputDialog предоставляет простой удобный диалог для получения одиночное от пользователя.
Если вы хотите несколько значений, создайте производный класс QDialog
с нуля с 4 полями ввода.
Например:
QDialog dialog(this);
// Use a layout allowing to have a label next to each field
QFormLayout form(&dialog);
// Add some text above the fields
form.addRow(new QLabel("The question ?"));
// Add the lineEdits with their respective labels
QList<QLineEdit *> fields;
for(int i = 0; i < 4; ++i) {
QLineEdit *lineEdit = new QLineEdit(&dialog);
QString label = QString("Value %1").arg(i + 1);
form.addRow(label, lineEdit);
fields << lineEdit;
}
// Add some standard buttons (Cancel/Ok) at the bottom of the dialog
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()));
// Show the dialog as modal
if (dialog.exec() == QDialog::Accepted) {
// If the user didn't dismiss the dialog, do something with the fields
foreach(QLineEdit * lineEdit, fields) {
qDebug() << lineEdit->text();
}
}