qdialog 返回值_QDialog exec()并获取结果值
我有子類QDialog來實(shí)現(xiàn)類似于QMessageBox的功能(我需要這個來允許定制)。它有一條短信和“確定”、“取消”按鈕。我正在顯示使用exec()使其阻塞的對話框。現(xiàn)在,當(dāng)用戶單擊OK/Cancel時,如何返回true/false值?
我嘗試將按鈕連接到setResult(),然后,單擊時返回結(jié)果值,但是單擊按鈕不會關(guān)閉對話框
返回值不正確。
下面是我寫的代碼。我認(rèn)為我在exec/result部分是錯的,但我不確定如何修復(fù)它。class MyMessageBox : public QDialog {
Q_OBJECT
private slots:
void onOKButtonClicked() { this->setResult(QDialog::Accepted); }
void onCancelButtonClicked() { this->setResult(QDialog::Rejected); }
public:
MyMessageBox(QMessageBox::Icon icon, const QString& title,
const QString& text, bool showCancelButton = true,
QWidget* parent = 0);
virtual void resizeEvent(QResizeEvent* e);
QDialog::DialogCode showYourself()
{
this->setWindowModality(Qt::ApplicationModal);
this->exec();
return static_cast<:dialogcode>(this->result());
}
};
用戶將實(shí)例化該類并調(diào)用showYourself(),這將返回值并關(guān)閉(和刪除)對話框。
我已經(jīng)發(fā)布了部分代碼。如果你需要更多,請告訴我,我會發(fā)布完整的版本。
總結(jié)
以上是生活随笔為你收集整理的qdialog 返回值_QDialog exec()并获取结果值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 没有bug队——加贝——Python 练
- 下一篇: html导出excel 内存不足,web