QDialog中调用setResult(1);没有起作用
时间: 2024-03-21 11:41:05 浏览: 15
在 QDialog 中调用 setResult() 方法,是为了在 QDialog::exec() 方法中返回 QDialog::Accepted 或 QDialog::Rejected 信号,以便进行相应的处理。如果您调用了 setResult(1),但却没有起作用,可能是因为您没有正确地调用 QDialog::exec() 方法来启动 QDialog。
请确保在调用 QDialog::setResult() 方法后,使用 QDialog::exec() 方法来启动 QDialog。例如:
```
QDialog dialog;
dialog.setResult(1);
int result = dialog.exec();
if(result == QDialog::Accepted)
{
//处理 QDialog::Accepted 信号
}
else if(result == QDialog::Rejected)
{
//处理 QDialog::Rejected 信号
}
```
另外,您也可以在 QDialog::closeEvent() 事件中手动设置 QDialog::Accepted 或 QDialog::Rejected 信号,例如:
```
void MyDialog::closeEvent(QCloseEvent *event)
{
setResult(QDialog::Accepted); //或者 setResult(QDialog::Rejected);
QDialog::closeEvent(event);
}
```
希望能对您有所帮助!