PythonのGUIライブラリ、tkinterを使ってGUIアプリケーションを作成します。今回は複数の項目からユーザーに選択させるためのUI、ラジオボタン(Radiobutton)の作成方法を解説します。
また、フォームの作成や他のウィジェットの使い方については以下の記事で解説していますので、あわせてご覧ください。
tkinterとは
tkinterはGUI(グラフィカルユーザーインタフェース)を実装するためのPythonの標準ライブラリです。ボタンやテキストボックス、画像表示などユーザーがキーボードやマウスで操作可能なインタフェースを構築することができます。
公式ドキュメントは以下から参照できます。
Radiobuttonの作成方法
Radiobuttonは複数の項目から、ユーザーが選択できるインタフェースです。
Radiobuttonの初期化
選択されたRadiobuttonのvalueのデータを格納するためのWidget変数を用意します。
今回は文字列を扱うため、StringVarを使います。
#ラジオボタン初期化
v = StringVar()
v.set("選択してください")
格納したデータを取り出すときは以下のようにgetメソッドを使用します。
v.get()
また、数値を扱いたい場合はIntVar、DoubleVar、boolean型を扱いたい場合はBooleanVar型を使用することができます。
例としてIntVarを使いたい場合は、以下のように記述します。
v = IntVar()
v.set(0)
Radiobuttonの作成
Radiobuttonの作成は以下のコードで実装できます。
「text」はラジオボタンの項目に表示する文字列、「variable」はデータの格納先、「value」は選択された場合に格納されるデータとなります。
#ラジオボタンの作成
rb1 =ttk.Radiobutton(frame1,
text="Python",
variable=v,
value="python" #選択時に格納されるデータ
)
作成したソースコード
今回作成した全体のソースコードは以下の通りです。
質問に対する回答をラジオボタンで選択し、「OK」ボタンをクリックすると、ラジオボタンで選択された項目がターミナルに文字列で出力されます。
from tkinter import *
from tkinter import ttk
#ウィンドウを作成
root = Tk()
#ウィンドウサイズを指定
root.geometry("320x240")
#ウィンドウタイトルを指定
root.title('入力フォーム')
#フレームを作成する
frame1 = ttk.Frame(root, padding=(32))
frame1.grid()
#ラベルを作成
label1 = ttk.Label(frame1, text='使用している言語を選択してください', padding=(5, 2))
label1.grid(row=0, column=0, sticky=E) #配置場所を指定
#ラジオボタン初期化
v = StringVar()
v.set("選択してください")
#ラジオボタンの作成
rb1 =ttk.Radiobutton(frame1,
text="Python",
variable=v,
value="python" #選択時に格納されるデータ
)
rb1.grid(row=1, column=0) #配置場所を指定
rb2 = ttk.Radiobutton(frame1,
text="C++",
variable=v,
value="C++"
)
rb2.grid(row=2, column=0) #配置場所を指定
#ボタンを作成
button1 = ttk.Button(
frame1, text='OK',
command=lambda: print("選択された言語は%sです" % v.get()))
button1.grid(row=3, column=0) #配置場所を指定
print("フォーム表示")
root.mainloop()
各ウィジェットを配置する場所を指定するFrameの使い方については、以下の記事で解説していますので、あわせてご覧ください。
実行結果
プログラムを実行すると以下のようなウィンドウが表示されます。
ラジオボタンで「Python」を選択し、「OK」ボタンをクリックすると以下のようにターミナルに出力されました。
選択された言語はpythonです
どの項目が選択されているかという情報を正しく取得できていることが確認できました。
プログラミングのスキルを活かすには
プログラミングのスキルを仕事に活かすには、フリーランスとして受けられる案件がおすすめです。
テックゲートフリーランスは、フリーランスエンジニアの案件紹介や契約交渉・債権管理などのサポートを行っているフリーランスエージェントです。
- リモートワーク可能な案件が50%以上
- 週3〜4日の案件の豊富さ
- 年収100万円アップのサポート
無料相談フォームからご登録いただくだけで、経験年数やスキルに合わせて案件をご紹介。また、リモートワーク可能な案件や週3〜4日OKの案件も豊富に用意されています。
副業やフリーランスとして仕事を受けてみたいと考えている方には、テックゲートフリーランスが提供する多様なサポートが非常におすすめです。
\ 無料で登録してみる! /
まとめ
今回はtkinterでラジオボタン(Radiobutton)を使って選択項目を実装する方法を解説しました。複数の項目から排他的に1つの項目を選択させるような用途に役立ちますので、ぜひ活用してみてください。
Tkinterを使ったGUI作成についてさらに詳しく学びたい方には、自分のペースで動画で学べるUdemyの以下の講座もおすすめです。
0から始めるTkinterの使い方完全マスター講座〜Python×GUIの基礎・応用〜また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。
スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。
それでは、また次の記事でお会いしましょう。
コメント