阅读这篇的前提是已经默认了解了​​PyQt5的基础框架​​​和​​PyQt5创建按钮和触发点击事件​​(超链接点击跳转)。我们进一步介绍如何点击按键实现退出当前创建好的GUI界面。这里介绍三种方法。

方法一,代码如下:

# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton


class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.resize(600, 300)
self.setWindowTitle('点击按键关闭当前GUI界面')

self.button1 = QPushButton('关闭', self)
self.button1.clicked.connect(self.clickButtonCloseWindow)

def clickButtonCloseWindow(self):
self.close()


if __name__ == '__main__':
app = QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())

当我们点击案件的时候,直接执行​​self.close()​​​语句,因为此时的​​self​​​本身指代的就是我们当前创建的​​QMainWindow​​​窗口,所以直接调用​​close​​方法即可。

方法二:当然我们也可以更加简化一些,直接去掉按键点击后执行的函数,直接将按键事件与关闭界面关联起来。代码如下:

# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton


class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.resize(600, 300)
self.setWindowTitle('点击按键关闭当前GUI界面')

self.button1 = QPushButton('关闭', self)
self.button1.clicked.connect(self.close)


if __name__ == '__main__':
app = QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())

可以看到我们直接将按键点击事件与​​self.close​​关联起来,注意:这里的self.close不能够加括号,否则报错

方法三:点击按键是确定当前​​QApplication​​对象的实例,并关闭,代码如下:

# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton


class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.resize(600, 300)
self.setWindowTitle('点击按键关闭当前GUI界面')

self.button1 = QPushButton('关闭', self)
self.button1.clicked.connect(self.clickButtonCloseWindow)

def clickButtonCloseWindow(self):
qApp = QApplication.instance()
qApp.quit()


if __name__ == '__main__':
app = QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())

我们可以看到我们使用​​QApplication.instance()​​​来获取当前​​QApplication​​​实例化的对象,然后用​​quit()​​​方法退出当前的​​GUI​​界面。

码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~