📜  pyqt 关闭应用程序 - Python (1)

📅  最后修改于: 2023-12-03 15:18:46.391000             🧑  作者: Mango

PyQt 关闭应用程序 - Python

在 PyQt 中,退出应用程序的方法有很多种,下面介绍几种常见的方法。

方法一:使用QApplication.quit()方法
from PyQt5.QtWidgets import QApplication, QPushButton

app = QApplication([])

button = QPushButton('Quit')
button.clicked.connect(app.quit)
button.show()

app.exec_()

以上代码中,我们创建了一个简单的界面,并将一个按钮与应用程序的退出方法相连接,当我们点击按钮时,应用程序便会退出。

方法二:使用QMainWindow.close()方法
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton

app = QApplication([])

window = QMainWindow()
button = QPushButton('Close')
button.clicked.connect(window.close)
window.setCentralWidget(button)
window.show()

app.exec_()

以上代码中,我们创建了一个主窗口,并将一个按钮与该窗口的关闭方法相连接,当我们点击按钮时,该窗口便会关闭。

方法三:使用QWidget.closeEvent()方法
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton

class MyWidget(QWidget):
    def closeEvent(self, event):
        reply = QMessageBox.question(self, 'Message', 'Are you sure you want to quit?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

app = QApplication([])
widget = MyWidget()
button = QPushButton('Quit')
button.clicked.connect(widget.close)
widget.setGeometry(100, 100, 300, 200)
button.move(100, 70)
button.setParent(widget)
widget.show()

app.exec_()

以上代码中,我们创建了一个自定义的QWidget,并重写了它的closeEvent()方法,该方法会在关闭窗口时被调用。我们在该方法中使用QMessageBox询问用户是否确认退出应用程序,如果用户点击“Yes”,则关闭窗口,否则忽略该事件。

以上便是几种常见的退出应用程序的方式,你可以根据实际需要选择适合自己的方法。