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();
...
}