|
|
Tkinter Checkboxes. |
H.Kamifuji . |
ティックボックスまたはチェックボックスまたはチェックボックスとも呼ばれるチェックボックスは、ユーザーがさまざまなオプションから複数の選択を行うことを可能にするウィジェットです。 これは、ユーザーが選択肢を 1 つしか作成できないラジオボタンとは異なります。 通常、チェックボックスは、白いスペース(偽の場合、チェックされていない場合)または目盛りまたは X(真の場合、すなわちチェックされている場合)を含むことができる正方形のボックスとして画面上に表示される。 通常、チェックボックスの意味を説明するキャプションは、チェックボックスの隣に表示されます。 チェックボックスの状態は、ボックス上でマウスをクリックすると変更されます。 または、キャプションをクリックするか、スペースバーなどのキーボードショートカットを使用して行うこ>ともできます。 チェックボックスには、オンまたはオフの 2 つの状態があります。 Tkinter Checkbutton ウィジェットは、テキストを含むことができますが、単一のフォントまたはイメージでのみ使用でき、ボタンは Python の関数またはメソッドに関連付けることができます。 ボタンを押すと、Tkinter は関連する関数またはメソッドを呼び出します。 ボタンのテキストは複数の行にまたがることができます。 |
次の例では、「男性」と「女性」の2つのチェックボックスを示しています。 各チェックボックスには異なる変数名(IntVar())が必要です。from tkinter import * master = Tk() var1 = IntVar() Checkbutton(master, text="male", variable=var1).grid(row=0, sticky=W) var2 = IntVar() Checkbutton(master, text="female", variable=var2).grid(row=1, sticky=W) mainloop()このスクリプトを起動すると、次のウィンドウが表示されます。 ![]() ![]() この例を少し改善することができます。 最初にラベルを追加します。 さらに、2 つのボタンを追加します. 1 つはアプリケーションを終了し、もう 1 つは値 var1 と var2 を表示します。 from tkinter import * master = Tk() def var_states(): print("male: %d,\nfemale: %d" % (var1.get(), var2.get())) Label(master, text="Your sex:").grid(row=0, sticky=W) var1 = IntVar() Checkbutton(master, text="male", variable=var1).grid(row=1, sticky=W) var2 = IntVar() Checkbutton(master, text="female", variable=var2).grid(row=2, sticky=W) Button(master, text='Quit', command=master.quit).grid(row=3, sticky=W, pady=4) Button(master, text='Show', command=var_states).grid(row=4, sticky=W, pady=4) mainloop()前のスクリプトの結果は次のようになります。 ![]() ![]() 「男性」をチェックして「表示」をクリックすると、次の出力が得られます。 male: 1, female: 0 |
我々は、プログラミング言語のリストを示すアプリケーションを書く。 ['Python'、 'Ruby'、 'Perl'、 'C ++']、自然言語のリストなどがあります。 ['English'、 'German'] をチェックボックスとして使用します。 プログラミング言語と自然言語を選択することが可能です。 さらに、アプリケーションを終了するための「終了」ボタンと、チェックボックス変数の状態をチェックする「ピーク」ボタンの 2 つのボタンがあります。#!/usr/bin/python3 from tkinter import * class Checkbar(Frame): def __init__(self, parent=None, picks=[], side=LEFT, anchor=W): Frame.__init__(self, parent) self.vars = [] for pick in picks: var = IntVar() chk = Checkbutton(self, text=pick, variable=var) chk.pack(side=side, anchor=anchor, expand=YES) self.vars.append(var) def state(self): return map((lambda var: var.get()), self.vars) if __name__ == '__main__': root = Tk() lng = Checkbar(root, ['Python', 'Ruby', 'Perl', 'C++']) tgl = Checkbar(root, ['English','German']) lng.pack(side=TOP, fill=X) tgl.pack(side=LEFT) lng.config(relief=GROOVE, bd=2) def allstates(): print(list(lng.state()), list(tgl.state())) Button(root, text='Quit', command=root.quit).pack(side=RIGHT) Button(root, text='Peek', command=allstates).pack(side=RIGHT) root.mainloop()ウィンドウは次のようになります。 ![]() ![]() |
Checkboxes |
|