モーダルダイアログを作る

QDialogクラスを継承し、accept(), reject() を発生させます。uiには ButtonBoxを貼り付けておきます。

private slots:
    void onAccept();
    void onReject();

ソース部分です。ButtonBoxで発生されるSIGNALを受け取ります。

// コンストラクタ
ui->setupUi(this);
connect( ui->buttonBox, SIGNAL(accepted()), this, SLOT(onAccept()) );
connect( ui->buttonBox, SIGNAL(rejected()), this, SLOT(onReject()) );

そしてSLOTでの処理。

void DialoHoge::onAccept()
{
  accept();
}

void DialogHoge::onReject()
{
  reject();
}

最後に、このダイアログを呼び出す部分です。

  DialogHoge* dialog = new DialogHoge( this );
  if (dialog->exec() == QDialog::Accepted)
  {
  }
  delete dialog;