PyQt ポップアップ表示を実装
実装内容
今回つくりたいものは「ポップアップ表示」です。
なにか動作をした際に、確認の意味で表示されるようなものです。
実装方法としては、普通にダイアログを表示するだけでいいと思うのですが、それでは消すときに×ボタンを押す必要があるので、少し使いにくいという場合があるかもしれません。
そのため今回は、「画面のどこをクリックしても表示が消える」というようにしたいと思います。
実現方法
ここで問題になるのが終了処理をどこに割り付けるかです。
ボタンにはclicked()があるので簡単ですが、ダイアログ自身には恐らくそれが無いので別の手法をとる必要があります。
私はQtのことに詳しいわけではないので(リファレンス読まないです…)、卑怯なやり方をすることにします。
mousePressEvent()を変更する
いうなれば、デフォルトの機能内に処理を追加するという感じですね。(多分)
ソースコード内で再定義できるならデフォルトコードの見本が欲しいですね。
(引数内にeventというのを渡すものは全てこういう類だと考えています。)
ソースコード
見本になるものがいるかなと思いましたが、どんなプログラムでも下記のコード書けば動作はわかるので無しでいきます。
def mousePressEvent(self, event):
self.close()
これを書くとクリック動作が全てclose()処理になります。
終わりに
今回はプログラミングにおける考え方の見本を見せたと思って貰えればいいです。
ただし何度も言うように、私は正攻法をあまりやらないので、参考になるかどうかはその人次第です。
きっちりやりたい人はリファレンス読みましょうね!!
コメントを残す