【Python GUI Tkinterリファレンス】Widget変数一覧

<tkinterトップページに戻る>

Widget変数とは(別名:制御変数)

-textvariableや-variableオプションに指定することのできる変数。

動的にラベルの文字列を変更したり、入力した値を取得出来たりする。

get()で値の取得、set()で値の設定ができる。

用意されているWidget変数は4種類

IntVar

int_var = IntVar(value=0)
int_var.set(1)
int_var.get()

・整数型を保持させる

DoubleVar

double_var = DoubleVar(value=0.0)
double_var.set(0.1)
double_var.get()

・浮動小数型を保持させる

BooleanVar

boolean_var = BooleanVar(value=True)
boolean_var.set(False)
boolean_var.get()

・真偽値を保持させる

StringVar

string_var = StringVar(value="string")
string_var.set("test")
string_var.get()

・文字列を保持させる

 

4種類の制御変数を使用したプログラムを実行したときのサンプル画像

※サンプルコードを実行

variable

inputを押すと各Widget変数のset()が呼ばれ値が設定される

variable_input

outputを押すと各Widget変数のget()が呼ばれ値がprintされる

variable_output

 

サンプルコード

from tkinter import *
import tkinter.ttk as ttk

class VariableSample(ttk.Frame):
    def __init__(self, master):
        super().__init__(master)
        self.int_var = IntVar(value=0)
        self.double_var = DoubleVar(value=0.0)
        self.boolean_var = BooleanVar(value=True)
        self.string_var = StringVar(value="string")
        self.create_widgets()
        self.pack()

    def create_widgets(self):
        intSpin = ttk.Spinbox(self,textvariable=self.int_var)
        intSpin.pack()

        doubleSpin = ttk.Spinbox(self,textvariable=self.double_var)
        doubleSpin.pack()

        booleanCheck =ttk.Checkbutton(self,text = "test",variable=self.boolean_var)
        booleanCheck.pack()

        stringEntry = ttk.Entry(self,textvariable = self.string_var)
        stringEntry.pack()

        buttonframe = ttk.Frame(self)
        buttonframe.pack()

        inButton = ttk.Button(buttonframe,text="input",command=self.inputValue)
        inButton.pack(side="left")

        outButton = ttk.Button(buttonframe,text="output",command=self.outputValue)
        outButton.pack(side="left")


    def inputValue(self):
        self.int_var.set(1)
        self.double_var.set(0.1)
        self.boolean_var.set(False)
        self.string_var.set("sample")

    def outputValue(self):
        print(self.int_var.get())
        print(self.double_var.get())
        print(self.boolean_var.get())
        print(self.string_var.get())




if __name__ == '__main__':
    master = Tk()
    master.title("VariableSample")
    master.geometry("300x400")
    VariableSample(master)
    master.mainloop()

 

 

あわせて読みたい