大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

ラズパイデスクトップでPyQt5入門(9) Event and Signal in PyQt5(2)Event Object

著者:國松亜紗子
公開日:2019/11/06
最終更新日:2019/11/06
カテゴリー:技術情報

こんばんは。國松です。
今回はPyQt5のtutorialのEvent and Signalの2回目です。まずはEvent Objectについてみていきたいと思います。

参考サイト
ZetCode PyQt5 tutorial
【PythonでGUI】PyQt5 -始めの一歩-

3.Event Object
イベントオブジェクトはイベントを記述する多数の属性を含むPythonのオブジェクトです。イベントオブジェクトは生成されたイベントに固有のものです。
今回の例ではラベルウィジェットにマウスポインタのX座標とY座標を表示していきます。

マウストラッキングはデフォルトでは無効になっているので有効にします。
無効:マウス移動中に少なくとも1つのマウスボタンが押された場合のみマウス移動イベントを受け取る。
有効:ボタンが押されていなくてもマウス移動イベントを受けとる

eがイベントオブジェクトです。イベントオブジェクトにはトリガーされたイベントのデータが含まれています。今回の場合はマウス移動イベントです。
x(),y()関数でマウスポインタのx座標,y座標を取得します。取得した情報を文字列にしてそれをラベルウィジェットに設定します。

4.Event sender(ボタンクリック時のイベント発生)
どのウィジェットがシグナルの送信者か知るにはsender()メソッドを使用します。
ここではbuttonclick()メソッドでsender()メソッドを呼び出してどのボタンがクリックされたかを判断するものを作成していきます。


 
5.Emitting Signal(カスタム信号)
QObjectから作成されたオブジェクトはシグナルを出すことができます。
ここではcloseAppというカスタム信号(新しいシグナル)を作成していきたいと思います。
closeAppはマウスクリックイベント中に発生します。信号はQMainWindowのclose()スロットに接続されます。ウィンドウをクリックするとアプリケーションが終了します。

 

    上に戻る