魚cノート——PythonのGUIプログラミング(3):Tkinterの3つのコンポーネントCheckbutton、Radiobutton、Labelframe
4449 ワード
コンテンツの概要:
Checkbutton、Radiobutton、Labelframeの基本的な使い方
packのanchorプロパティ、fillプロパティ
Radiobuttonのindicatororプロパティを変更することで、デフォルトの円形チェックボックスを変更します.
Checkbuttonマルチ選択ボックス.
ラジオボックス
まずCheckbuttonの使い方を感じてみましょう.
次はブランドをひっくり返すプログラムです.
Radiobuttonの使い方はCheckbuttonの使い方とほぼ一致しており、唯一の違いはRadiobuttonが単一選択の効果、すなわち反発の効果を実現することである.同じグループ内で、すべてのRadiobuttonは1つのvariableというオプションしか共有できず、異なるvalueの値を設定します.
複数のオプションがある場合、ループを使用するとより簡潔になります.
Labelframeラベルフレーム.実はFrameフレームワークの進化版で、形態的にはLabelが追加されたFrameです.それがあればCheckbuttonとRadiobuttonのグループは簡単になります.
Checkbutton、Radiobutton、Labelframeの基本的な使い方
packのanchorプロパティ、fillプロパティ
Radiobuttonのindicatororプロパティを変更することで、デフォルトの円形チェックボックスを変更します.
Checkbuttonマルチ選択ボックス.
ラジオボックス
まずCheckbuttonの使い方を感じてみましょう.
from tkinter import *
root = Tk()
v = IntVar() # tk , 。 , 0, 1
c = Checkbutton(root, text=' ', variable=v) #variable ( )
c.pack()
l = Label(root, textvariable=v) # v , Label
l.pack()
mainloop()
次はブランドをひっくり返すプログラムです.
from tkinter import *
root = Tk()
GIRLS = [' ', ' ', ' ', ' ']
v = [] # , 。
for girl in GIRLS:
v.append(IntVar())# tk ,
b = Checkbutton(root, text=girl, variable=v[-1]) # girl 。 , -1
b.pack(anchor=W) # Checkbutton 。anchor , N W S E NW WS SE EN( ) CENTER
mainloop()
Radiobuttonの使い方はCheckbuttonの使い方とほぼ一致しており、唯一の違いはRadiobuttonが単一選択の効果、すなわち反発の効果を実現することである.同じグループ内で、すべてのRadiobuttonは1つのvariableというオプションしか共有できず、異なるvalueの値を設定します.
from tkinter import *
root = Tk()
v = IntVar() #
#variable 。value
Radiobutton(root, text='one', variable=v, value=1).pack(anchor=W)
Radiobutton(root, text='two', variable=v, value=2).pack(anchor=W)
Radiobutton(root, text='three', variable=v, value=3).pack(anchor=W)
# , value v, v 。 value , 2,
mainloop()
複数のオプションがある場合、ループを使用するとより簡潔になります.
from tkinter import *
root = Tk()
v = IntVar() #
LANGS = [
('Pyhton', 1),
('Perl', 2),
('Ruby', 3),
('Lua', 4)]
v = IntVar()
v.set(1)
for lang, num in LANGS:
b = Radiobutton(root, text=lang, variable=v, value=num, indicatoron=False) #
b.pack(fill=X) #X ,Y
mainloop()
Labelframeラベルフレーム.実はFrameフレームワークの進化版で、形態的にはLabelが追加されたFrameです.それがあればCheckbuttonとRadiobuttonのグループは簡単になります.
from tkinter import *
root = Tk()
group = LabelFrame(root, text=' :', padx=5, pady=5)
group.pack(padx=10, pady=10)
LANGS = [
('Pyhton', 1),
('Perl', 2),
('Ruby', 3),
('Lua', 4)]
v = IntVar()
for lang, num in LANGS:
b = Radiobutton(group, text=lang, variable=v, value=num)
b.pack(anchor=W)
mainloop()