wxPythonというわけではないけどGUIについて

2021-05-09




wxPythonだけの話ではありませんが、GUIプログラムについて、概念的な話を「大雑把に」「ざっくりと」させていただきます。

正しいかどうかよりも、雰囲気を掴むことが目的です。

私も体系的に学習したことがないので間違いあるかもしれませんが、その場合はご指摘願います。

ここでは、動作するものが「プログラム」、書いたもの・描くものを「ソース」「ソースコード」とします。

確認環境

  • Windows 10 Home
  • Python 3.9
  • wxPython 4.1

目に見えるプログラム

まず、作りたいものはWindows用でもMac用でもいいのですが、

ウィンドウがあるプログラム

になります。

要するに、目に見えるウィンドウが表示されて、クリックしたりできるプログラムということです。

世の中には、目に見える必要がないプログラムもたくさん存在します。バックグラウンドで動作しているものはほとんどそうですね。

構成

まず、「アプリケーション」という箱のようなものを作る必要があります。

これは、目に見えるプログラムでも見えないプログラムでも必要となるものと考えてください。

プログラムの動作本体、とも言えます。

で、目に見えるプログラムではさらに「フレーム」というものを作成する必要があります。

試しに、フレームだけのプログラムを作成して、実行すると以下のようになります。

ここで表示されているもの全体が「フレーム」となります。

ちなみにフレームを作成しない場合は、「見えないプログラム」となります。

次に、wxPythonではフレーム上に「パネル」というものを配置します。

分かりやすく、赤紫のパネルを配置してみます。

赤紫の部分がパネルということになります。

上のフレームのグレーの部分にはパネルは配置していません。「グレーのパネル」を配置した場合と区別つきませんが、あまり気にしないでください。

パネル自体は色を付けることはできますが、色をつけなければ見えないものです。

ここまでで、

アプリケーション
└フレーム
 └パネル

となっていることが分かってもらえたかと思います。

大雑把に、これらは親子関係だと思っておいてください。

アプリケーションが親で、その子がフレーム。フレームの子がパネルです。

コントロール/フォーム

ここまでで作成した「パネル」上にいろいろなものを配置していくことになります。

例えば、チェックボックスやボタンです。

これらは、「コントロール」や「(入力)フォーム」などと呼ばれます。

呼び方自体はあまり気にしないでください。

試しに作ってみると、こんな感じです。

いろいろ配置すると、GUIプログラムっぽくなりましたね。

これらのコントロールは「パネル」の子と考えてださい。

親子関係

ここまで、親だとか子だとか書いてきましたが、それについて大雑把に説明しておきます。

基本的に、自分から見た場合、親は1人です。

親:子は1:多です。

親1人に対して、子は複数いる可能性があるということです。

自分の親は決まっているのですぐに探せます。

親から見ると、子はたくさんいる可能性があるので、「どの子なのか」ちゃんと説明しないと分かりません。

プログラミングするときは、親子関係というものを常に気にするようにしてください。

設定・処理

実際に、意味のあるプログラムにするためには

ボタンの位置や、ボタン上に表示される文字列(例えば、[実行]や[終了])を「設定」したり、

ボタンをクリックされたときにどんな「処理」をするのか決めたりする必要があります。

そこがGUIプログラミングのメインとなります。

どんなコントロールをどこに配置して、クリックしたときにどんな動作をさせるのか。

入力した内容をファイルやDBに保存させることも可能ですし、ファイルやDBの内容をプログラム上に表示することも可能です。

プログラムというもの

プログラムというものは、基本的に「何度も使う」「決まった処理をする」というものに適しています。

そういう処理に対してプログラムを利用することで、ミスを減らしたり、時間を節約することができます。

というのは事務的なプログラムの話です。

GUIプログラムも「芸術」と考えれば、好き勝手に作るのもありでしょう。

気持ち悪い配色にして、変な位置に変な名前のボタンを配置して、クリックしたら予想もつかない動作するなど。

楽しいプログラムを作成することから始めてみませんか?

以上。

wxPython入門

後記

最後までお読みくださりありがとうございます。

こんなに更新したのに、現在はほぼ誰も見ていないゴミカスクズ無価値ブログです。

よければ(はてな)ブックマークや拡散をお願いいたします。

更新の原動力として励ましが欲しいのです…<(_ _)>

当ブログ内お薦め記事

記事はここまでです。