memopy

pythonで作ってみました的なブログ

python tkinterでGUIアプリを作る(第2弾~カレンダー編①~)

python tkinterでカレンダー・スケジュール管理アプリを作る

python tkinterでGUIアプリを作る第2弾。第1弾では、家計簿アプリを作成した。

第1弾の記事
Python3,Tkinter,sqlite3でGUIアプリ(家計簿ソフト)を作りたい - memopy

第2弾として、今回テーマに選んだのは、カレンダー・スケジュール管理アプリだ。
f:id:memopy:20170614235954p:plain

tkinterには、カレンダーウィジェットというものは存在しないため、ウィジェットを組み合わせて文字通り一から組み立てていく必要がある。どこまでの機能を実装できるか不透明であるが、いろいろとチャレンジしてみたい。

GUIアプリの仕様要求

今回のスケジュール管理アプリには次の仕様を要求する。

  1. GUI画面上にカレンダーが表示でき、年月の変更ができること
  2. GUI画面上からカレンダーをクリックして、スケジュールの登録ができること
  3. 登録されているスケジュールを、カレンダー上に表示できること
  4. 登録されているスケジュールを一覧表示できること
  5. 将来の拡張に伴う設計変更が容易となるように、可能な範囲でパラメータ化及びモジュール化を行うこと

システム設計

今回の仕様を満たすためのシステム設計を行う。

  1. windows10で動作させる
  2. python3.6により開発
  3. tkinterでGUI作成
  4. sqlite3をデータベースに選定
  5. すべて標準モジュールで開発する
  6. スタンドアロン環境で動作させる

基本設計

機能構成と画面イメージは次のとおり。
f:id:memopy:20170615003247p:plain

まとめ

第1弾の家計簿アプリのときよりも雑な設計であるが(笑)、tkinterの様々な機能を試しながらGUIアプリを作成していきたい。
前回は、クラス化手法を一切使わないで全て手続き型により記述したが、今回は、クラス化手法によるGUI開発を行ってみようと思う。

また、今回はpython3.6で開発するが、可能な限りpython2.7のスクリプトも公開していきたい。
今後の大勢はpython3系になっていくと思うが、python2からの脱却(移行)ができていないのも現実だろう。私の仕事で使っているGISソフト; ArcGIS for DesktopのAPIもpython2系なので、私も仕事ではpython2系を使っている。
世の中には、python2系と3系の文献が混在しており、当初はかなり混乱した思い出があるので、極力、両方のユーザのためにも記事をまとめていきたい。

次の記事
python tkinterでカレンダーを作成する(カレンダー編②) - memopy