メニューバーを考えてみましょうかね。

メニューバーってのは以下のようなやつです。

 

tkのコーディングパターン。

tkはラベル毎に行き先を指定する形です。初心者には分かりやすいでしょうが、

これだと処理を共通化しにくい。

 

WxPythonはどうでしょう。見た目はこっちのほうがいいですね。

コーディングパターンは以下。ラベル毎に行き先は指定できません。

メニューがクリックされると一つの行き先が呼ばれる。

呼ばれた先でIDによる振り分けが行うやり方。

 

私が行ってるメニュー作成は共通ルーチンになってます。

メニューのラベルとIDは外からリストで与えられる。

メニュー処理は一箇所で局面毎にいろんなメニューが出せる。

pythonが動的型付けやるように動的メニュー作成。

これが出来るのでWxpythonを選んだ。wxpythonの方が抽象化向きでしょう。

 

こいつをtk用に書き直し他方が早いかな。

 

ソースにメニューのラベルを直接書くのはメンテ性が悪くなります。

サンプルコードは仕方がないです。

外部から与える方式にすればメニューの中身を自由に変えられる。

 

処理系はWxpythonの流儀で出来てますからtk用のメニュー作成ルーチンでつじつま合わせをしないといけません。

イベント発生時に渡るパラメータが違ってるのでそちらも変更が必要。

メニューのイベントを受けるのは1箇所なので問題ないでしょう。

 

tkでイベントを受ける処理は1箇所にする。

ラベルとIDのリストがあるので渡ってくラベルでIDを逆引き。

IDが分かれば処理に繫がる。

 

プログラムにはできるだけ定数やリテラルを持ち込まない。

プログラムコード外部で管理してるといろいろ役に立つ。

プログラムコードからデーターを追い出すとより抽象的になる。

抽象的になると理解するのが難しくなる。

皆に嫌われる。

 

こういった変更があるのでコードとデータは別管理を推奨されてるのです。

これって面倒なんですよね。

それを徹底的にやってるのがマイクロソフトでしょうか?

Windowはレジストリーいじればいろんな事が出来ますね。

人と金があると徹底的にパラメータの外出しが出来ます。

コードを書く方は大変なんですね。パラメータが多いと仕様を決める方も大変。

関わりたくないね。