非常抱歉,如果你在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 小助理,如未能正确解答您的问题,请继续追问。 |