pyqt关闭页面不退出程序
时间: 2023-10-25 21:10:29 浏览: 48
您可以使用以下代码在关闭页面时不退出程序:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
import sys
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(100, 100, 300, 200)
self.setWindowTitle('PyQt Widget')
button = QPushButton('Close', self)
button.move(100, 100)
button.clicked.connect(self.close)
def closeEvent(self, event):
event.ignore()
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = MyWidget()
widget.show()
sys.exit(app.exec_())
```
在该代码中,我们重写了 `closeEvent()` 方法并使用 `event.ignore()` 方法来阻止关闭窗口时退出程序。
相关问题
pyqt closeevent退出程序
您可以在 PyQt 中重写 `closeEvent` 方法来实现关闭窗口时退出程序的功能。具体实现方法如下:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox
class MyWidget(QWidget):
def __init__(self):
super().__init__()
def closeEvent(self, event):
reply = QMessageBox.question(self, 'Message', 'Are you sure to quit?',
QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = MyWidget()
widget.show()
sys.exit(app.exec_())
```
在上面的代码中,我们重写了 `closeEvent` 方法,并在其中弹出了一个询问对话框,询问用户是否确定退出程序。如果用户点击了 Yes 按钮,则调用 `event.accept()` 方法退出程序;否则,调用 `event.ignore()` 方法忽略关闭事件,程序继续运行。
pyqt5 退出程序
PyQt5提供了一种简单的方法来退出程序。你可以在按钮的点击事件处理程序中使用`QApplication.instance().quit()`来退出程序。这个方法将会终止主事件循环并关闭应用程序窗口。下面是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QPushButton
# 创建应用程序对象
app = QApplication([])
# 创建按钮
button = QPushButton("退出程序")
# 定义按钮的点击事件处理程序
def on_button_clicked():
QApplication.instance().quit()
# 连接按钮的点击事件到处理程序
button.clicked.connect(on_button_clicked)
# 显示按钮和运行主事件循环
button.show()
app.exec_()
```