如何在PyQt6中取消窗口关闭按键?
时间: 2024-11-25 14:17:16 浏览: 5
PyQt6窗口多种组件样式美化 调整窗口皮肤外观
在 PyQt6 中,你可以通过覆盖 `closeEvent` 函数来防止默认的窗口关闭操作。当你接收到一个 `QCloseEvent` 信号时,你可以选择忽略它,或者在事件处理程序中执行其他操作,比如显示确认对话框让用户确认是否真的要关闭。
以下是一个简单的示例:
```python
from PyQt6.QtWidgets import QApplication, QMainWindow
from PyQt6.QtCore import pyqtSignal, QCloseEvent
class CustomWindow(QMainWindow):
def closeEvent(self, event: QCloseEvent) -> None:
reply = QMessageBox.question(
self, 'Confirm Close', 'Are you sure you want to quit?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No
)
if reply == QMessageBox.Yes:
event.accept() # 如果用户点击了“确定”,则关闭窗口
else:
event.ignore() # 用户点击了“取消”,则忽略关闭事件
if __name__ == '__main__':
app = QApplication([])
window = CustomWindow()
window.show()
app.exec_()
```
在这个例子中,当用户尝试关闭窗口时,会弹出一个确认对话框询问是否真的退出。如果用户选择“确定”,窗口会被关闭;选择“取消”则关闭事件会被忽略,窗口保持打开状态。
阅读全文