魚cノート——PythonのGUIプログラミング(3):Tkinterの3つのコンポーネントCheckbutton、Radiobutton、Labelframe

4449 ワード

コンテンツの概要:
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()