田舎社会人のいろいろ学習記

Python、英語、その他いろいろ

【tkinter】Variablesの使い方【Python】

f:id:vigilantPotato:20210517142729p:plain
variablesは、複数のウィジェット間で共通の変数を利用する際に使用され、用途に応じて以下の4種類が用意されている。
  1. StringVar:文字列
  2. IntVar:整数
  3. DoubleVar:浮動小数
  4. BooleanVar:ブール(True/False)
以下、使用頻度の高いStringVarを用いて使用方法を整理した。


【スポンサーリンク】


StringVarの概要

StringVarは文字列を格納するための変数で、setメソッドで値を格納し、getメソッドで値を取得することができる。StringVarをウィジェットのtextvariableオプションにセットすることで、StringVarの値を表示させることができる。
以下、StringVarへの値をセットし、それをLabelに表示する例を示す。

import tkinter

root = tkinter.Tk()

#StringVarの設定
var = tkinter.StringVar(root)
var.set("variable")             #値をセット

#Label
l = tkinter.Label(
    root,
    relief="raised",
    textvariable=var,   #textvariableの設定
    )
l.pack()

root.mainloop()

f:id:vigilantPotato:20210517142852p:plain

LabelにStringVarの値が表示されていることが分かる。textオプションではなく、textvariableオプションを使用する必要があることに注意。

[↑ 目次へ]


【スポンサーリンク】


動的に変数を変更

ほかのウィジェットからStringVarを変更すると、textvariableに設定したウィジェットに値が動的に反映される。ボタンクリック時にStringVarの値を書き換え、ラベルに表示させる例を示す。

import tkinter

root = tkinter.Tk()

#ボタンクリック時に実行する関数
def change_text():
    var.set("Button Clicked")   #変数を更新

#StringVarの設定
var = tkinter.StringVar(root)
var.set("variable")

#Label
l = tkinter.Label(
    root,
    relief="raised",
    textvariable=var,   #textvariableの設定
    )
l.pack()

#Button
b = tkinter.Button(
    root,
    text="click",
    command=change_text,    #ボタンクリック時に実行する関数
    )
b.pack()

root.mainloop()

ボタンをクリックするとStringVarに値がセットされ、ラベルの値にも反映される。

クリック前
f:id:vigilantPotato:20210517143019p:plain
クリック後
f:id:vigilantPotato:20210517143113p:plain

[↑ 目次へ]


【スポンサーリンク】