Tkinterを使った練習問題です。
問題
Tkinterを使ってラジオボタンを持ったウィンドウを作成して、ラジオボタンを選択すると選択されたオプションが表示される「Submit」ボタンを作成してください。
回答コード
import tkinter as tk
def on_submit_button_click():
print("Selection:", var.get())
root = tk.Tk()
var = tk.StringVar()
radio_button1 = tk.Radiobutton(root, text="Option 1", variable=var, value="Option 1")
radio_button1.pack()
radio_button2 = tk.Radiobutton(root, text="Option 2", variable=var, value="Option 2")
radio_button2.pack()
button = tk.Button(root, text="Submit", command=on_submit_button_click)
button.pack()
root.mainloop()
コード解説
import tkinter as tk
: この行は tkinter ライブラリをインポートし、使いやすくするために名前を変更します。tk
としています。def on_submit_button_click():
: この関数は、「送信」ボタンがクリックされたときに呼び出されます。この関数は、StringVar に格納されている選択した値を出力します。root = tk.Tk()
: これにより、Tkinterアプリケーションのメインウィンドウが作成されます。var = tk.StringVar()
: これにより、ラジオボタンの選択した値を格納するための StringVar が作成されます。radio_button1 = tk.Radiobutton(root, text="Option 1", variable=var, value="Option 1")
: これにより、”Option 1″ というテキストのラジオボタンウィジェットが作成され、それを StringVar にリンクして、その値を “Option 1” に設定します。radio_button1.pack()
: これにより、ラジオボタンウィジェットがメインウィンドウに配置されます。radio_button2 = tk.Radiobutton(root, text="Option 2", variable=var, value="Option 2")
: これにより、”Option 2″ というテキストのラジオボタンウィジェットが作成され、それを StringVar にリンクして、その値を “Option 2” に設定します。radio_button2.pack()
: これにより、ラジオボタンウィジェットがメインウィンドウに配置されます。button = tk.Button(root, text="Submit", command=on_submit_button_click)
: これにより、”Submit” というテキストのボタンウィジェットが作成され、ボタンがクリックされたときに関数が呼び出されるようにコマンドが設定されます。button.pack()
: ボタンウィジェットがメインウィンドウに配置されます。root.mainloop()
: これにより、Tkinterアプリケーションのメインイベントループが開始され、ユーザーがウィンドウを閉じるまで実行されます。
ウィンドウを閉じるためのボタンを設置したい場合
ウィンドウを閉じるボタンを設定するには、 ‘root.destroy()メソッドをボタンのコマンド関数に含めます。
button = tk.Button(root, text="Close", command=root.destroy)
button.pack()
ボタンの位置を変更したい場合
Tkinterのボタンの配置を変更するには、「グリッド」または「パック」を使用できます。
「パック」はウィジェットを垂直または水平に積み重ね
「グリッド」はウィジェットを2次元テーブルに配置します。
「グリッド」の「行」オプションと「列」オプションを使用して各ウィジェットの行と列を指定するか、「パック」マネージャーの「サイド」と「アンカー」オプションを使用して親コンテナ内のウィジェットの位置を指定できます。
pack() を使用してTkinterのボタンの位置を変更する例
import tkinter as tk
root = tk.Tk()
button1 = tk.Button(root, text="Button 1")
button1.pack(side="left")
button2 = tk.Button(root, text="Button 2")
button2.pack(side="right")
root.mainloop()
この例では、’側のオプションpack()
メソッドは、最初のボタンは「左」、2番目のボタンは「右」に設定され、ボタンの位置がそれぞれウィンドウの左側と右側に変更されます。
gridを使用してTkinterのボタンを配置する例
import tkinter as tk
root = tk.Tk()
button = tk.Button(root, text="Button")
button.grid(row=0, column=0)
root.mainloop()
コメント