Python Python 活用 プログラミング

【python】【PyQt5】デスクトップアプリ化して配布 -その2 メニューの追加-

 

前回の記事「デスクトップアプリ化して配布 -その1 ウィンドウを作成-」で空のデスクトップを作成したので、その続きとして、メニューとステータスバーをを配置していきます。

参考【python】【PyQt5】デスクトップアプリ化して配布 -その1 ウィンドウを作成-

続きを見る

 

本記事の内容

  • メニューの配置
  • メニューのアクションの設定

 

 

今回の記事では、次のようなメニューを追加していきます。

 

サンプルコード

 

スポンサーリンク

app.batを変更

今回は新しく、main_view2.pyを作成していきます。

サンプルコードをダウンロードされた方は、app.batを次のように変更してください。

main_view2.pyを起動するように変更しています。

app.batを実行するとデスクトップアプリが起動するようになっています。

 

メニューの配置

 

前回の記事「デスクトップアプリ化して配布 -その1 ウィンドウを作成-」では、以下のような空のWindowを作成しました。

 

これをベースに、メニューを追加していきます。

追加する場所は、MainViewの__init__の中です。

次のコードを追加します。

 

QMainWindowのmenuBarでメニューを追加します。

作成されたメニューはmenusに、dict型でまとめて入れておきます。

 

これだけでは、メニューから実行するアクションが設定できていません。

 

 

メニューのアクションを設定

メニューのアクションを設定していきます。

アクションはQActionを使って設定していきます。

 

メニュー表示テキストのみだけでなく、iconやショートカットの設定もあるので、まとめて設定できるように関数にします。

 

関数の引数は以下の役割を持っています。

引数 役割
text メニューの文字列。
solt メニューのアクション。処理する関数を指定する。
shortcut 'Ctrl+Q'などショートカットを指定。
icon メニューに表示するicon。iconsフォルダから読み込むようになっています。
tip カーソルがメニュー上にきたときに、ステータスバーに表示するコメント。
enable メニューをロックするかどうか。

 

 

この関数を使って、アクションを設定していきましょう。

File>quitとHelp>infomationの二つを設定し、Editは何もしていない状態です。

 

やっていることは

処理流れ

  • new_actionでアクションを設定して取得
  • menusにaddActionでアクションを設定

 

アクションで実行される関数を作成

quitではself.close、infomationではself.show_infoがslotに設定されています。

self.closeは、QMainWindowのアプリ終了のメソッドなので、何もしなくて良いですが、self.show_infoはメソッドを用意します。

 

ただ、printを動かしているだけです。

メニューに独自の処理を実装する場合は、このように実装してください。

 

 

ステータスバーの設定

最後のに、メニューのTip(補助メッセージ)を表示する、ステータスバーを設定しておきます。

 

これで、メニューつきのデスクトップアプリになりました。

完成したmain_view2.pyはgit hubのコードを参照ください。<参照コード>

 

次はQToolBarを使って、ツールバーを追加していきたいと思います。

参考【python】【PyQt5】デスクトップアプリ化して配布 -その3 ツールバー(QToolBar)の追加-

続きを見る

-Python, Python 活用, プログラミング

© 2021 ひつじ工房