Qtのダイアログで返り値を渡すには?
QDialog::accept() / reject() 最も一般的な方法。 // MyDialog.h class MyDialog : public QDialog { Q_OBJECT public: explicit MyDialog(QWidget *parent = nullptr); QString resultText() const { return m_result; } private slots: void onOkClicked(); private: QString m_result; }; // MyDialog.cpp MyDialog::MyDialog(QWidget *parent) : QDialog(parent) { auto *edit = new QLineEdit(this); auto *button = new QPushButton("OK", this); connect(button, &QPushButton::clicked, this, &MyDialog::onOkClicked); } void MyDialog::onOkClicked() { m_result = "ユーザーが入力した値"; // 何でも保存できる accept(); // ← ダイアログを閉じて OK を返す } 呼び出し側 MyDialog dlg; if (dlg.exec() == QDialog::Accepted) { QString value = dlg.resultText(); ... }