我有一个带有 QDialogBu​​ttonBox 小部件的 QDialog,并且我已将按钮框的接受信号连接到我的 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 的接受槽(我想手动调用该槽)。如何防止这种情况发生,以便我可以采用上面概述的手动方法?

最佳答案

您可以实现 MyDialog::accept()。该函数在 QDialog 中是虚拟的。

10-06 01:59