💭
Tkinterでアプリ作成 入門
動画
仮想環境作成
Windows環境
python -m venv tkinter
.\tkinter\Scripts\activate
Mac環境
python -m venv tkinter
source tkinter/bin/activate
実装
tkオブジェクトを表示
import tkinter
root = tkinter.Tk()
root.mainloop()
タイトル名とサイズを決めてみましょう
import tkinter
root = tkinter.Tk()
root.title('Sample')
root.geometry('1200x600')
root.mainloop()
classに纏めたものが以下になります。
import tkinter
class Application(tkinter.Frame):
def __init__(self, root):
super().__init__(root)
root.title('Sample')
root.geometry('1200x600')
def main():
root = tkinter.Tk()
app = Application(root)
root.mainloop()
if __name__ == "__main__":
main()
ドロップダウンリスト設置
ドロップダウン用にset_widgets関数を作成します。
class Application(tkinter.Frame):
def __init__(self, root):
super().__init__(root)
root.title('Sample')
root.geometry('1200x600')
self.set_widgets(root)
def set_widgets(self, root):
pass
今回利用するコンボボックスは、ttkモジュールを利用するため
追加でインポートします。
import tkinter.ttk as ttk
選択肢はリストで作成した値をもとに表示します。
def set_widgets(self, root):
select_list = ['SelectA', 'SelectB']
combobox = ttk.Combobox(root, values=select_list)
combobox.pack()
ただ、このままだと選択した値を取得できないため、
ボタンを作成し、クリックしたときにターミナルに選択情報を出力できるようにしましょう。
def set_widgets(self, root):
select_list = ['SelectA', 'SelectB']
combobox = ttk.Combobox(root, values=select_list)
combobox['values'] = ['SelectA', 'SelectB']
combobox.pack()
button = tkinter.Button(text="表示",command=lambda:print(combobox.get()))
button.pack()
もしデフォルトでリストの文字列を表示する場合は、cuurrent(index)にすると良いです。
以下は、index0を参照するとき。
combobox.current(0)
ラジオボタン設置
ラジオボタン用にradio_Button関数を作成します。
class Application(tkinter.Frame):
def __init__(self, root):
super().__init__(root)
root.title('Sample')
root.geometry('1200x600')
self.set_widgets(root)
self.radio_Button(root)
def radio_Button(self, root):
pass
選択肢はリストで作成した値をもとに表示します。
def radio_Button(self, root):
radio_list = ['SelectC','SelectD']
rdo_var = tkinter.IntVar(value = 0)
for i in range(len(radio_list)):
rdo = tkinter.Radiobutton(root, value=i, variable=rdo_var, text=radio_list[i])
rdo.place(x=530, y=40 + (i * 24))
ただ、このままだと選択した値を取得できないため、
ボタンを作成し、クリックしたときにターミナルに選択情報を出力できるようにしましょう。
def radio_Button(self, root):
radio_list = ['SelectC','SelectD']
rdo_var = tkinter.IntVar(value = 0)
for i in range(len(radio_list)):
rdo = tkinter.Radiobutton(root, value=i, variable=rdo_var, text=radio_list[i])
rdo.place(x=530, y=40 + (i * 24))
button = tkinter.Button(text="表示",command=lambda:print(radio_list[rdo_var.get()]))
button.place(x=530, y=40 + ((i+1) * 24))
Discussion