見出し画像

Python 備忘録 | tkinter の使い方まとめ

◎ はじめに

Python には、標準ライブラリに tkinter というモジュールがある。tkinter を使って何か作りたいとき、以下の文章の太字を検索すればよいよう、備忘録としてまとめておく。(筆者は Python 初心者である。) その前に、一文目において

  • モジュールとは、プログラミングをする際に便利な道具のこと

  • tkinter とはグラフィカルなものを実現することに特化したモジュールの一つ

  • ライブラリとは、いくつかのモジュールを集めたもののこと

  • 標準ライブラリとは、Pythonをインストールしたときに自動的についてくるライブラリのこと

  • 標準ライブラリでないライブラリも存在する。それは、外部ライブラリと呼ばれる。 外部ライブラリには、matplotlib、Numpy、pandas、などがある。(おそらく、この3つを知っておけば大体の事は足りる。)

である。以下では、プログラミングをする際に行う手順を3つに分けてメモする。


① 設計パート

 自分が作りたいもの、作ったものにしてほしいことなどを明確にする部分であり。ここの部分については、ポイントをまだ知らず、適当である。

② 実行パート

 Python の構文と tkinter の知識を使って、プログラムを書く部分である。次の3-Step で行う (Step 0は準備)。まず、用語を説明しておく。

  • import ・・・ モジュールを使えるようプログラム内で宣言するコマンド

  • オブジェクト ・・・ Python によって意味を持つこととなった文字列

  • ウィジェット ・・・ tkinter の世界では、オブジェクトをウィジェットとよぶ。

Step 0. モジュールの import

 プログラミング内の先頭で、必要なモジュールをすべて宣言する。例えば、

import tkinter as tk

「import tkinter」によってモジュール tkinter を使えるようにし、「as tk」によって簡単のため tkinter を tk とよぶことにしている。こういう感じの import 部分は

import tkinter as tk

など、そのまま打つと覚える。(tk を別の文字列にしたりしない方が良い。)

Step 1. ウィジェットの作成

 ウィジェットの例としては、

  • トップレベルウィンドウ

  • Label ウィジェット

  • Button ウィジェット

  • Entry ウィジェット

があげられる。

 小見出しにおける「ウィジェットの作成」とは、ウィジェットの①生成 & ②配置を指すこととする。トップレベルウィンドウを除き、ウィジェットは生成しただけでは目に見えない。生成した後に、配置をする必要がある。配置をする関数は

  • pack 関数

  • grid 関数

  • place 関数

である。

Step 2. ウィジェットの属性

 ウィジェットに属性を加える。属性とは、大きさや色、テキストの文字列やイベントの有無やその内容などである。イベントを発生させるには、プログラム内にハンドラ関数 (の定義) が必要である。気分的には、ウィジェットの属性は

ウィジェットの属性 =  静的属性 + 動的属性

と分けられる。ここで、属性を

  • 静的属性 ・・・ 大きさテキストなど

  • 動的属性 ・・・ハンドラ関数ウィジェット変数

に二分した。(ウィジェット変数についてはよく理解しておらず、今後の課題であるため、ここでは説明できない。)

Step 3. 全体のデザイン

 Step 2 までで準備したウィジェットたちに対して、

  • ウィジェット同士の関連付けを行い、

  • したいことの実現

をする。完璧さを求めず、"とにかくプログラムを書ききる気持ち" が大切である。

③ テストと修正パート

 作ったプログラムに問題がないかテストをする部分である。エラーが出ると思うので、修正をする。

 経験則のおすすめは、エラーが出たプログラムをそのまま残しておき、コピーしたものに ver_2、ver_3、… と名付けて修正し続けること。(こうしておけば、中断して後日修正することになったとしても、分かりやすいから。 )

◎ 終わりに

Python を好きになり、上達を目指す人のことを Pythonist とよぶこととする。

今後は、苦手なパソコン関係を好きになることを目指し、そのために Pythonist としてノンビリ成長することを目標の1つとする。気づいたことがあれば、この note に加えていく。◾️ 


いいなと思ったら応援しよう!