3
2

More than 1 year has passed since last update.

Tkinterでアプリ作成 入門

Last updated at Posted at 2022-03-05

仮想環境作成

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)) 

動画

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2