PyQt 5はボタンをクリックしてGUIインタフェースを終了することを実現する
これを読む前提は、PyQt 5のベースフレームワークとPyQt 5の作成ボタンとトリガクリックイベント(ハイパーリンククリックジャンプ)がデフォルトで理解されていることです.さらに、現在作成されているGUIインタフェースを終了するには、ボタンをクリックする方法について説明します.ここでは3つの方法を紹介します.
メソッド1、コードは次のとおりです.
私たちが事件をクリックすると、
方法2:もちろん、ボタンをクリックして実行する関数を直接削除し、ボタンイベントを閉じたインタフェースに直接関連付けることもできます.コードは次のとおりです.
ボタンクリックイベントを
方法3:ボタンをクリックすることは、現在の
メソッド1、コードは次のとおりです.
# -*- 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
メソッドを直接呼び出せばいいです.方法2:もちろん、ボタンをクリックして実行する関数を直接削除し、ボタンイベントを閉じたインタフェースに直接関連付けることもできます.コードは次のとおりです.
# -*- 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はカッコを付けてはいけません.そうしないと、エラーが発生します.方法3:ボタンをクリックすることは、現在の
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
インタフェースを終了することがわかります.