|
发表于 2024-2-24 00:05:22
|
显示全部楼层
非常抱歉,如果你在Qt6 Designer中创建的是QWidget窗体而不是QMainWindow,则无法直接设置"ClosePolicy"属性来禁止关闭窗口。不过,我们可以使用一种替代方法来达到相同的效果。以下是一个示例代码,演示如何在Qt6 Designer中禁止关闭QWidget窗体:
- from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox
- class MyWidget(QWidget):
- def closeEvent(self, event):
- reply = QMessageBox.question(self, "提示", "确定要关闭窗口吗?",
- QMessageBox.StandardButtons(QMessageBox.Yes | QMessageBox.No))
- if reply == QMessageBox.Yes:
- event.accept()
- else:
- event.ignore()
- if __name__ == "__main__":
- app = QApplication([])
- window = MyWidget()
- window.setWindowTitle("禁止关闭窗口示例")
- window.resize(300, 200)
- button = QPushButton("点击这里无效!")
- window.layout().addWidget(button)
- window.show()
- app.exec()
复制代码
在上述示例代码中,我们定义了一个新的QWidget子类MyWidget,并重写了closeEvent()方法。在该方法中,我们首先弹出一个询问对话框,提示用户是否确定关闭窗口。如果用户点击了"是"按钮(QMessageBox.Yes),则调用event.accept()允许关闭窗口;否则,调用event.ignore()取消关闭操作。
希望这个替代方法能解决你的问题!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|