Как заставить QDialogButtonBox НЕ закрывать родительский QDialog? - PullRequest
4 голосов
/ 16 июля 2010

У меня есть QDialog с виджетом QDialogButtonBox, и я подключил принятый сигнал блока кнопки к слоту в моем подклассе QDialog, например, так:

void MyDialog::on_buttonBox_accepted()
{
    QString errorString = this->inputErrorString();
    if (errorString.isEmpty())
    {
        // Do work here
        // code code code...

        this->accept();
    }
    else
    {
        QMessageBox::critical(this, tr("Error"), tr("The following input errors have occurred:") + errorString);
    }
}

Однако, диалог закрывается после того, какотображается окно сообщения;по-видимому, кнопка автоматически соединяет принятый сигнал с принимающим слотом QDialog (я хочу вызвать этот слот вручную).Как я могу предотвратить это, чтобы использовать ручной подход, описанный выше?

1 Ответ

14 голосов
/ 16 июля 2010

Вы можете реализовать MyDialog :: accept ().Функция является виртуальной в QDialog .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...