QDialog,setResult后关闭对话框,获取的exec返回值不正确。
时间: 2024-02-17 09:01:36 浏览: 73
pyqt弹出新对话框,以及关闭对话框获取数据的实例
在使用QDialog时,如果在关闭对话框之前调用了setResult方法设置了返回值,那么在关闭对话框后获取的exec返回值确实会不正确。这是因为在关闭对话框时,exec方法返回的是关闭对话框时的返回值,而不是setResult方法设置的返回值。
要解决这个问题,可以在setResult方法之后调用done方法来关闭对话框并设置返回值。done方法会在关闭对话框之前将返回值设置好,然后调用accept或reject方法来关闭对话框,这样就可以正确获取到返回值了。
具体代码可以参考下面的示例:
```
QDialog dialog;
dialog.setResult(100);
dialog.done(QDialog::Accepted);
int result = dialog.result(); // 此时获取到的返回值为100
```
阅读全文