PyQt5入門 PythonでGUI作成 - yu00’s blog
イベント処理の方法
PyQt5でキーボードやマウスなどのイベントを扱う処理の説明です.
ウィジェットでキーボードやマウスの入力などのイベント起こると,それぞれに対応する関数が呼ばれます.
例えばキーボード入力が起こるとQWidget.keyPressEvent()という
関数が呼ばれます.
イベントが起こったとき何か処理をしたい場合には,
ウィジェットを継承し対応する関数を再実装(オーバーライド)することで実現します.
イベント処理の例
例としてエスケープキーが押されたらウィンドウを閉じるプログラムを書いてみます.
#! /usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtCore import Qt # QWidgetを継承 class MyWidget(QWidget): # キーボードイベントをオーバーライド def keyPressEvent(self, e): if e.key() == Qt.Key_Escape: # キーがエスケープなら self.close() # 閉じる if __name__ == '__main__': app = QApplication(sys.argv) window = MyWidget() # 継承したウィジェットを使う window.show() sys.exit(app.exec_())