メニューバーを考えてみましょうかね。
メニューバーってのは以下のようなやつです。
tkのコーディングパターン。
tkはラベル毎に行き先を指定する形です。初心者には分かりやすいでしょうが、
これだと処理を共通化しにくい。
WxPythonはどうでしょう。見た目はこっちのほうがいいですね。
コーディングパターンは以下。ラベル毎に行き先は指定できません。
メニューがクリックされると一つの行き先が呼ばれる。
呼ばれた先でIDによる振り分けが行うやり方。
私が行ってるメニュー作成は共通ルーチンになってます。
メニューのラベルとIDは外からリストで与えられる。
メニュー処理は一箇所で局面毎にいろんなメニューが出せる。
pythonが動的型付けやるように動的メニュー作成。
これが出来るのでWxpythonを選んだ。wxpythonの方が抽象化向きでしょう。
こいつをtk用に書き直し他方が早いかな。
ソースにメニューのラベルを直接書くのはメンテ性が悪くなります。
サンプルコードは仕方がないです。
外部から与える方式にすればメニューの中身を自由に変えられる。
処理系はWxpythonの流儀で出来てますからtk用のメニュー作成ルーチンでつじつま合わせをしないといけません。
イベント発生時に渡るパラメータが違ってるのでそちらも変更が必要。
メニューのイベントを受けるのは1箇所なので問題ないでしょう。
tkでイベントを受ける処理は1箇所にする。
ラベルとIDのリストがあるので渡ってくラベルでIDを逆引き。
IDが分かれば処理に繫がる。
プログラムにはできるだけ定数やリテラルを持ち込まない。
プログラムコード外部で管理してるといろいろ役に立つ。
プログラムコードからデーターを追い出すとより抽象的になる。
抽象的になると理解するのが難しくなる。
皆に嫌われる。
こういった変更があるのでコードとデータは別管理を推奨されてるのです。
これって面倒なんですよね。
それを徹底的にやってるのがマイクロソフトでしょうか?
Windowはレジストリーいじればいろんな事が出来ますね。
人と金があると徹底的にパラメータの外出しが出来ます。
コードを書く方は大変なんですね。パラメータが多いと仕様を決める方も大変。
関わりたくないね。