いまさらだけど Python を学習する:GUIプログラミング

さて、今回は「いまさらpython学習」の4回目です。前回までにデバッグの準備をしてきました。文法はいいサイトもたくさんあるので、今更このサイトで細かく紹介しても仕方ないなと思ったので、今回はちょっと飛躍して、GUIプログラミングについて学習してみたいと思います。

少し話がズレますが、私がプログラミングを学習し始めた数十年前の学生時代、Windows や Linux でウィンドウを表示するプログラミングを夢見て、独学を進めていましたが、当時学習していた C言語では、頑張っても ASCII アートが動かせるぐらいで、いつまでたってもDOSの窓から抜けられず、とてもつまらない思いをしたのを覚えています。ということで、プログラミングのモチベーションを上げるなら、GUI プログラミングかなと思い、ちょっと早い気もしますが4回目にして、ウィンドウを作ってみたいと思います。

参考:https://tkdocs.com/tutorial/

スポンサーリンク

Tikinterをつかう

早速ですが、GUIのライブラリは Tkinter を使います。ほかにも Kivy、PyQt、wxPython などいろいろとあるようですが、このブログでは標準で入っているTkinterを使っていきたいと思います。理由は標準のため、追加のインストールは不要で、サンプルを書いている記事も多く、初期の学習には向いているかなと思ったからです。

ウィンドウを表示

早速ウィンドウを表示してみましょう。IDLEを起動し、エディタウィンドウに以下をコーディングし、適当な名前で保存してください。F5で実行します。

1
2
3
4
5
6
7
import tkinter

main = tkinter.Tk()
main.title("Hello Tkinter")
main.geometry("300x300")

main.mainloop()

これだけで、以下の様な空のウィンドウが表示されたと思います。

空のウィンドウにテキスト文字を入れてみましょう。

1
2
3
4
5
6
7
8
9
10
import tkinter

main = tkinter.Tk()
main.title("Hello Tkinter")
main.geometry("300x300")

text = tkinter.Label(main, text="Hello python.")
text.grid()

main.mainloop()

以下のように、ウィンドウに「Hello python.」といった文字が入ったと思います。

ボタンを表示することも簡単にできます。

1
2
3
4
5
6
7
8
9
10
11
12
13
import tkinter

main = tkinter.Tk()
main.title("Hello Tkinter")
main.geometry("300x300")

text = tkinter.Label(main, text="Hello python.")
text.grid()

btn = tkinter.Button(main, text="Click ME!")
btn.grid()

main.mainloop()

まだ、ボタンをクリックしても何も起こりませんが、表示することは簡単にできたと思います。これだけでも俄然やる気が出てきたのではないかと思ます。

次に、テキストボックスを表示してみます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import tkinter

main = tkinter.Tk()
main.title("Hello Tkinter")
main.geometry("300x300")

text = tkinter.Label(main, text="Hello python.")
text.grid()

btn = tkinter.Button(main, text="Click ME!")
btn.grid()

txtbox = tkinter.Entry(main, width=30)
txtbox.grid()

main.mainloop()

レイアウトがいまいちですが、テキストボックスも表示できました。

ラジオボタンやチェックボックスも表示できます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import tkinter

main = tkinter.Tk()
main.title("Hello Tkinter")
main.geometry("300x300")

text = tkinter.Label(main, text="Hello python.")
text.grid()

btn = tkinter.Button(main, text="Click ME!")
btn.grid()

txtbox = tkinter.Entry(main,width=30)
txtbox.grid()

rbtn1 = tkinter.Radiobutton(main, text='select 1')
rbtn1.grid()

rbtn2 = tkinter.Radiobutton(main, text='select 2')
rbtn2.grid()

rbtn3 = tkinter.Radiobutton(main, text='select 3')
rbtn3.grid()

chbox = tkinter.Checkbutton(main, text='Check ME!')
chbox.grid()

main.mainloop()

これで ウィンドウを作成できそうです。

このように簡単に ウィンドウ を作ることができます。なんだか創作意欲が掻き立てられ、モチベーションが上がりますね。次回は、もう少し真面目にレイアウトなどについても考えてみたいと思います。