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

「いまさらpython学習」の6回目です。今まで、ウィジェットを触っても何も起きませんでした、ボタンを押すことで各種ウェジットの値を取得するようにしてみます。

サンプルコードは今までと同じものを利用し必要なコードだけ足してみます。
前回の記事はこちら

かなり間があきましたが、今回は「いまさらpython学習」の5回目です。前回はざっくりボタンやテキストボックスなどのウィジェットを適当に配置し、GUIプログラミングを体験してみ...
スポンサーリンク

早速コードを書いてみる

今回は早速コードにしてみます。前回分と比較すると変化点がわかりやすいです。ほとんど変わっていませんね。

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
29
30
31
32
33
34
35
36
37
import tkinter
from tkinter import messagebox

def click_btn():
    messagebox.showinfo( "確認", "入力された文字は " + txtbox.get() + " です。" )
    messagebox.showinfo( "確認", "ラジオボタンは " + str(rb_val.get()+1) + " 番目が選択されています。" )
    messagebox.showinfo( "確認", "チェックボックスは " + str(cb_val.get()) + " です。" )

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

text = tkinter.Label(main, text="Hello python.")
text.grid(row=0, column=0,columnspan=3,padx=10,pady=5,sticky=tkinter.W)

btn = tkinter.Button(main, text="Click ME!" ,command=click_btn)
btn.grid(row=1, column=2,padx=10)

txtbox = tkinter.Entry(main,width=25)
txtbox.grid(row=1, column=0,columnspan=2,padx=10)

rb_val = tkinter.IntVar()
rbtn1 = tkinter.Radiobutton(main, text='select 1', variable=rb_val, value=0)
rbtn1.grid(row=2, column=0,pady=5)

rbtn2 = tkinter.Radiobutton(main, text='select 2', variable=rb_val, value=1)
rbtn2.grid(row=2,column=1)

rbtn3 = tkinter.Radiobutton(main, text='select 3', variable=rb_val, value=2)
rbtn3.grid(row=2,column=2)

cb_val = tkinter.BooleanVar()
cb_val.set(True)
chbox = tkinter.Checkbutton(main, text='Check ME!', variable = cb_val)
chbox.grid(row=3,column=0,columnspan=3,sticky=tkinter.E)

main.mainloop()

変化点を見ていく

まず2行目は、messgebox を利用するためです。コードを実行してもらえばわかりますが、メッセージボックスの表示も簡単にできます。

4-7 行目

定義している関数は、ボタンをクリックしたときに呼び出される関数です。その時の テキストボックスや、ラジオボタン、チェックボックスの値をメッセージボックスに表示します。それぞれ、get() を利用して値を取得し、表示のため、str() で文字列に変換します。

16 行目

Button ウィジェットに command オプションで、ボタン押下時に実行したい関数を指定します。

22-30 行目

ラジオボタンの処理です。共通の変数、rb_val を用意して、Radiobutton ウィジェットの variable オプションで指定します。value オプションでは、そのボタンが選択されたときに、rb_val にセットする値を指定します。

Radiobutton ウィジェットにも、command オプションがありますが、どの項目が選択されているかを取得するだけであれば、準備する必要はありません。

32-34 行目

チェックボックスの状態を保持する cb_val 変数を用意して、Checkbutton ウィジェットの variable オプションで指定します。

Checkbutton ウィジェットにも、command オプションがありますが、ON/OFFの状態を取得したいだけであれば、準備する必要はありません。

実行結果

こんな感じで、ボタンを押した際の値をメッセージボックスで表示できます。