Pythonで学ぶ 基礎からのプログラミング入門 (26) オブジェクト指向について学ぼう(8)
誰が誰の親で、中から外に順にpackしていくということに注意を払えばそれほど難しくないですね。
○Widgetの継承
今まで利用してきたGUIのパーツはFrameとLabelだけでしたが、実際にはボタンやテキストボックスなど、さまざまなものが存在しています。ただ、よく考えてください。ボタンやラベルにはそれぞれ共通した役割である「フレームに格納可能」「画面に表示される」「クリックなどのイベント処理が可能」といった共通した特性があります。
これらの共通した特性を複数のクラスで実現する必要がある場合は、前回お話ししたように「継承」が便利です。GUIはコンポジションより継承をするべき場面です。
たとえばTkinterというよりも、一般的なGUIのライブラリでは、以下のようにラベルやボタンといったパーツは基本となるWidgetから継承される場合が多いです。
こうすることで基本機能はWidgetに搭載し、その差分のみ子クラスであるボタンやラベルで実装すれば機能を実現できます。
この基本ルールは自分でGUIのパーツを新しく作る際もあてはまります。
確認のために簡単なGUIのパーツを作ってみます。