魚cノート——PythonのGUIプログラミング(五):TkinterコンポーネントListbox、Scrollbar、Scale
4701 ワード
Listboxコンポーネントは、リストボックスの形式でオプションを表示し、スクロールバー操作をサポートします.したがって、多くのオプションを提供するのに適しています.
Listboxコンポーネントはselectmodeオプションに基づいて4つの異なる選択モードを提供します:SINGLE(ラジオ)、BROWSE(ラジオでもありますが、マウスをドラッグしたり方向キーで直接オプションを変更したりすることができます)、MUTICLE(マルチ選択)、EXTENDED(マルチ選択ですが、ShiftキーまたはCtrlキーを同時に押したり、マウスをドラッグしたりする必要があります).デフォルトはBROWSEです.
Listboxコンポーネントのデフォルトは最大10個の項目しか表示できませんが、11個の項目があればどうしますか?
Listbox内でマウスホイールをスライドさせることで最後のホイールを現すことができますが、無視されやすいです.
回避するには、次の2つの方法があります.
①heightオプションを変更します.heightオプションは、Listbox表示の行数(ピクセルではない)を設定するためのもので、デフォルト値は10です.
しかし、1000個などの項目を表示しすぎると、heightを変更するのは適切ではありません.1000行は表示できませんから.
②Listboxコンポーネントにスクロールバーを追加できます.
Scrolbarスクロールバーコンポーネント:
スクロールバーコンポーネントは独立したコンポーネントですが、ほとんどが他のコンポーネントと組み合わせて使用されます.
コンポーネントに垂直スクロールバーを取り付けるには、次の2つのことが必要です.
1.このコンポーネントのyscrollcommandオプションをScrolbarコンポーネントのset()に設定する方法
2.Scrolbarコンポーネントのcommandオプションをそのコンポーネントのyview()メソッドとして設定
次に、Listboxにスクロールバーを追加する例を示します.
スクロールバーといえば、スクロールバーコンポーネントに似たコンポーネントScaleコンポーネントについて続けます.
Scaleコンポーネントは、主にスライダによって範囲内の数値を表します.オプション範囲と解像度を設定できます(解像度はステップ長、すなわち精度を指します)
ステップと精度は、オプションtickintervalとresolutionを設定することで変更できます.
from tkinter import *
master = Tk()
theLB = Listbox(master)
theLB.pack()
#theLB.insert(0, '') # Listbox , 。 END
for item in [' ', ' ', ' ']:
theLB.insert(END, item) #END 。 ,END 0; ,END 1
'''
theLB.delete(0, END)
# Listbox 。 :
# ,
'''
#
theButton = Button(master, text=' ', \
command=lambda x=theLB:x.delete(ACTIVE)) #ACTIVE
theButton.pack()
mainloop()
Listboxコンポーネントはselectmodeオプションに基づいて4つの異なる選択モードを提供します:SINGLE(ラジオ)、BROWSE(ラジオでもありますが、マウスをドラッグしたり方向キーで直接オプションを変更したりすることができます)、MUTICLE(マルチ選択)、EXTENDED(マルチ選択ですが、ShiftキーまたはCtrlキーを同時に押したり、マウスをドラッグしたりする必要があります).デフォルトはBROWSEです.
Listboxコンポーネントのデフォルトは最大10個の項目しか表示できませんが、11個の項目があればどうしますか?
Listbox内でマウスホイールをスライドさせることで最後のホイールを現すことができますが、無視されやすいです.
回避するには、次の2つの方法があります.
①heightオプションを変更します.heightオプションは、Listbox表示の行数(ピクセルではない)を設定するためのもので、デフォルト値は10です.
しかし、1000個などの項目を表示しすぎると、heightを変更するのは適切ではありません.1000行は表示できませんから.
②Listboxコンポーネントにスクロールバーを追加できます.
Scrolbarスクロールバーコンポーネント:
スクロールバーコンポーネントは独立したコンポーネントですが、ほとんどが他のコンポーネントと組み合わせて使用されます.
コンポーネントに垂直スクロールバーを取り付けるには、次の2つのことが必要です.
1.このコンポーネントのyscrollcommandオプションをScrolbarコンポーネントのset()に設定する方法
2.Scrolbarコンポーネントのcommandオプションをそのコンポーネントのyview()メソッドとして設定
次に、Listboxにスクロールバーを追加する例を示します.
from tkinter import *
root = Tk()
sb = Scrollbar(root)
sb.pack(side=RIGHT, fill=Y) # , y
lb = Listbox(root, yscrollcommand=sb.set)
# Listbox set ,
for i in range(1000):
lb.insert(END, i)
lb.pack(side=LEFT, fill=BOTH)
# , command
sb.config(command=lb.yview) #config
#yview Listbox ,
# yview
mainloop()
スクロールバーといえば、スクロールバーコンポーネントに似たコンポーネントScaleコンポーネントについて続けます.
Scaleコンポーネントは、主にスライダによって範囲内の数値を表します.オプション範囲と解像度を設定できます(解像度はステップ長、すなわち精度を指します)
from tkinter import *
# , Entry , Entry
root = Tk()
s1 = Scale(root, from_=0, to=42) # from to, from Python ,
s1.pack()
s2 = Scale(root, from_=0, to=200, orient=HORIZONTAL) # Scale , orient
s2.pack()
# get
def show():
print(s1.get(), s2.get())
Button(root, text=' ', command=show).pack()
mainloop()
ステップと精度は、オプションtickintervalとresolutionを設定することで変更できます.
from tkinter import *
root = Tk()
#tickinterval=5 5
#resolution , 5 , 5
# length ,
s1 = Scale(root, from_=0, to=42, tickinterval=5, resolution=5, length=200).pack()
s2 = Scale(root, from_=0, to=200, tickinterval=10, orient=HORIZONTAL, length=600).pack()
mainloop()