memopy

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

python tkinter カレンダーの月めくり処理を実装する(カレンダー編③)

カレンダーの月めくり処理を実装する

カレンダーアプリを作成する第3回目。今回は、カレンダーの月めくりの処理を実装したい。

前回までに作成したGUI
f:id:memopy:20170615180348p:plain

月めくりのロジック

新規に作成するメソッドは次のロジックとなる。

  1. 月を変更するラベル("<", ">")がクリックされたときのイベント関数を定義
  2. イベント関数内で(以下、同じ。)押されたラベルが、"<" か ">" かを判定する
  3. "<" が押されたら、現在の月を -1 する
  4. ">" が押されたら、現在の月を +1 する
  5. 現在の月が 0 になったら、現在の年を -1 して、現在の月を 12 にする
  6. 現在の月が 13 になったら、現在の年を +1 して、現在の月を 1 にする
  7. frame_topにある年と月のラベルを変更する
  8. 変換した現在の年と月を引数にして、カレンダーの日付部分を作成するメソッド(create_calendar)を再度呼び出す

また、カレンダーの日付部分を作成するメソッド(create_calendar)には、「呼び出されたら、はじめに、現在定義されているボタンを全て削除する(初期化)処理」を追加する。

続きを読む

python tkinterでカレンダーを作成する(カレンダー編②)

python tkinterでカレンダーを作成する(カレンダー編②)

f:id:memopy:20170615180348p:plain
今回はメインとなるカレンダーのGUIから作成する。tkinterにはカレンダーウィジェットというものは存在しないため、ウィジェットを組み合わせてカレンダーを作っていく必要がある。
今回はメインとなる各日付を表示するウィジェットにはボタンタイプを採用した。これにより、日付をクリックしてスケジュールの登録を可能にする。(ラベルタイプでもできるが、「押した感」を出せるのはボタンタイプとなる。)
その他、ラベルと、それらを格納するフレームを上図のとおり配置する。

続きを読む

python tkinter クラス継承のサンプルスクリプト

python tkinter クラス継承のサンプルスクリプト

前回に引き続き、tkinterのクラス継承についてまとめている。
今回はサンプルスクリプトを中心に具体的な方法について記述する。

前回の記事
python クラスの定義と継承とは - memopy

続きを読む

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

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

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

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

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

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

続きを読む

python tkinter クリックされたウィジェットのテキストや属性を取得する

python tkinter クリックされたウィジェットを取得する

f:id:memopy:20170611175835p:plain
前回の記事は、ボタンがクリックされたとき、commandオプションにコールバック関数を定義して、どのボタンがクリックされたのか調べる方法を紹介した。
python tkinter どのボタンが押されたか判定する方法 - memopy
今回は、bindメソッドを使用して、前回よりもっと幅広く、ボタンに限らず全てのウィジェットに対して、それらがクリックされたときに、そのテキストや色などの値を取得する方法を解説する。
参考サイト(英語)
http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/events.html

続きを読む

python tkinter どのボタンが押されたか判定する方法

python tkinter どのボタンが押されたか判定する方法

ボタンをforループ文などで機械的にたくさん作った時のコールバック関数の定義について整理する。
f:id:memopy:20170611175835p:plain

続きを読む

python tkinter フォント(font)の設定方法

python tkinter フォント(font)の設定方法

tkinterのフォントの設定について整理する。
tkinterでは、フォントタイプ、サイズ、太字、斜体、取消線の設定が可能だ。
参考ページ(英語):http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/fonts.html
f:id:memopy:20170611104952p:plain

続きを読む