对话框触发rejected()信号后可以不关闭对话框嘛
时间: 2024-03-13 14:42:42 浏览: 49
可以的,可以通过 `ignore()` 方法来忽略 `rejected()` 信号,从而不关闭对话框。
以下是一个示例,演示如何在触发 `rejected()` 信号后不关闭对话框:
```python
from PyQt5.QtWidgets import QApplication, QDialog, QDialogButtonBox, QVBoxLayout, QLabel
app = QApplication([])
dialog = QDialog()
layout = QVBoxLayout()
label = QLabel("Are you sure you want to cancel?")
layout.addWidget(label)
button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
layout.addWidget(button_box)
dialog.setLayout(layout)
def on_rejected():
print("Rejected")
# 忽略 rejected 信号,不关闭对话框
dialog.ignore()
button_box.rejected.connect(on_rejected)
dialog.show()
app.exec_()
```
在上面的代码中,我们创建了一个带有两个按钮的对话框 (OK 和 Cancel),并且将 `rejected` 信号连接到了 `on_rejected()` 槽函数。在 `on_rejected()` 函数中,我们打印了 "Rejected",并且调用了 `ignore()` 方法来忽略 `rejected` 信号,从而不关闭对话框。
希望这个示例对您有所帮助。
阅读全文