Qt の 4 つの入力ラベルから 4 つの値のセットを取得したいと思います。使用したいのですが、デフォルトで 1 つQInputDialog
しか含まれていません。では、 4 つのラベルと4 つの行編集inputbox
を追加して、そこから値を得るにはどうすればよいでしょうか?
質問する
20691 次
2 に答える
26
あなたはそうしない。ドキュメントは非常に明確です:
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();
}
}
于 2013-07-07T13:33:27.730 に答える