前:Pythonの- (6)Tkinterのウィジェット:エントリ
Tkinterのリストボックスウィジェット
約##
の選択肢のリストを表示するためのリストボックス(リストボックス)コンポーネント。リストボックスの項目は、テキストのみを含めることができ、すべてのプロジェクトは、同じフォントや色を使用する必要があります。コンポーネントの構成は、ユーザーがリストから1つのまたは複数のオプションを選択することができます。
リストボックス##のコンポーネントを使用する場合は?
リストボックスコンポーネントは、通常、表示するために使用されるテキストのセットオプションとリストボックスコンポーネントチェックボタンとラジオボタン同様の構成要素を、しかし、リストボックスは、リストされるオプション(後者二つはボタンの形態です)。
##使い方
あなたがリストボックスコンポーネントを作成するときに最初に行うべきことは、そこに1行または複数行のテキストを追加することですので、それは、空になったとき。我々はテキストを追加するために、挿入()メソッドを使用し、この方法は、2つのパラメータを有する:最初のパラメータは、挿入のインデックス番号、文字列が挿入されている二番目の引数です。インデックス番号は、一般に、シリアル項目(番号0は、リストの最初の項目である)です。
しかし、あなたはまた、いくつかの特別なインデックス番号を使用することができます。たとえばACTIVEは、選択した項目を示します(リストボックスの複数選択が許可されている場合、それは最後に選択した項目を表し); ENDは別の例は、リストボックスの最後の行であるので、あなたは、プロジェクトを挿入したいときあなたは、リストの末尾に時間を使うことができます。
from tkinter import *
master = Tk()
theLB = Listbox(master)
theLB.pack()
eggs = ["鸡蛋","鸭蛋","鹅蛋","二狗蛋","没有蛋"]
for item in eggs:
theLB.insert(END,item)
mainloop()
それはすべての項目のリストを削除するには(あなたが事を行う必要があるときに、リストを更新する)ための最も一般的な操作で、リスト内の削除項目の削除()メソッドを使用します。
listbox.delete(0, "end")
listbox.insert("end", newitem) #插入新的项目
もちろん、あなたはまた、指定した項目を削除することができ、次の例では、プロジェクトのACTIVE状態を削除するには、別のボタンを使用しています。
from tkinter import *
master = Tk()
theLB = Listbox(master)
theLB.pack()
eggs = ["鸡蛋","鸭蛋","鹅蛋","二狗蛋","没有蛋"]
for item in eggs:
theLB.insert(END,item)
theButton = Button(master,text = "删除",\
command = lambda x=theLB:x.delete(ACTIVE))
theButton.pack()
mainloop()
(分析:まず、theButtonボタンを追加し、その後、ボタンは確かにコマンドで、コロンの前に、ここで使用されるラムダ式はパラメータであり、コロンは、我々はそれをX呼んで、このパラメータの戻り値の背後にあるあなたがLisboxの内部の内容を削除するため、ありますLisboxに渡されたオブジェクトは、オブジェクトをインスタンス化し、削除方法は呼び出し、パラメータの内部ACTIVEであり、ENDのように、)選択の現在の値を表すようtheLBはそれほど
SELECTMODEリストボックスは、アセンブリ4つの異なるモードを選択するオプションを提供します:「シングル」(ラジオ)、(もラジオが、マウスをドラッグするか、矢印キーをすることは、直接のオプションを変更することができます)、「ブラウズ」、「複数」(複数選択)と「拡張」(また、複数の選択肢が、マウスを達成するために、ShiftキーやCtrlキーまたはドラッグを押したままにする必要があります)。デフォルトでは、「ブラウズ」です。(引用符なしで必要な資本を有効にする場合)
##参数
リストボックス(マスター=なし、**オプション)(クラス)
マスター - 親コンポーネント
**オプション - 各オプションのコンポーネントオプション、テーブルの詳細以下の特定の意味と用法:
オプション | 意味 |
バックグラウンド | 1.設定した背景色 2.デフォルト値がシステムによって指定されます |
BG | 背景のように |
borderwidth | ボーダーリストボックスの幅を指定1. 2.デフォルト値は、典型的には、システムが2つの画素を指定し |
BD | borderwidthのように |
カーソル | 1.漂流マウススタイルリストボックス上でマウス際に指定します 。2.デフォルト値はシステムによって指定されます |
exportselection | 1.選択したテキストアイテムがクリップボードにコピーすることができるかどうかを指定し 、デフォルト値がTrue 2. 3.あなたがプロジェクトをFalseにテキストをコピーすることはできません変更することができます |
フォント | 1. 指定 Listbox 中文本的字体 2. 默认值由系统指定 |
foreground | 1. 设置 Listbox 的文本颜色 2. 默认值由系统指定 |
fg | 跟 foreground 一样 |
height | 1. 设置 Listbox 显示的行数(不是像素) 2. 默认值是 10 |
highlightbackground | 1. 指定当 Listbox 没有获得焦点的时候高亮边框的颜色 2. 默认值由系统指定,通常是标准背景颜色 |
highlightcolor | 1. 指定当 Listbox 获得焦点的时候高亮边框的颜色 2. 默认值由系统指定 |
highlightthickness | 1. 指定高亮边框的宽度 2. 默认值是 1 |
listvariable | 1. 指向一个 StringVar 类型的变量,该变量存放 Listbox 中所有的项目 2. 在 StringVar 类型的变量中,用空格分隔每个项目,例如 var.set("鸡蛋 鸭蛋 鹅蛋 李狗蛋") |
relief | 1. 指定边框样式 2. 默认值是 "sunken" |
selectbackground | 1. 指定当某个项目被选中的时候背景颜色 2. 默认值由系统指定 |
selectborderwidth | 1. 指定当某个项目被选中的时候边框的宽度 2. 默认是由 selectbackground 指定的颜色填充,没有边框 3. 如果设置了此选项,Listbox 的每一项会相应变大,被选中项为 "raised" 样式 |
selectforeground | 1. 指定当某个项目被选中的时候文本颜色 2. 默认值由系统指定 |
selectmode | 1. 决定选择的模式 2. 四种不同的选择模式:"single"(单选)、"browse"(也是单选,但拖动鼠标或通过方向键可以直接改变选项)、"multiple"(多选)和 "extended"(也是多选,但需要同时按住 Shift 键或 Ctrl 键或拖拽鼠标实现) 3. 默认是 "browse" |
setgrid | 1. 指定一个布尔类型的值,决定是否启用网格控制 2. 默认值是 False |
takefocus | 1. 指定该组件是否接受输入焦点(用户可以通过 tab 键将焦点转移上来) 2. 默认值是 True |
width | 1. 设置 Listbox 的宽度(单位是文本单元) 2. 文本单元是英文字母的平均宽度(所以如果该选项设置为 2,那么是无法容纳"ww"这两个宽度大于平均宽度的字母的) 3. 默认值是 20 |
xscrollcommand | 1. 为 Listbox 组件添加一条水平滚动条 2. 将此选项与 Scrollbar 组件相关联即可 |
yscrollcommand | 1. 为 Listbox 组件添加一条垂直滚动条 2. 将此选项与 Scrollbar 组件相关联即可 |
##方法
activate(index)
— 将给定索引号对应的选项激活(在其文本下方画一条下划线)
bbox(index)
— 返回给定索引号对应的选项的边框
— 返回值是一个以像素为单位的 4 元祖表示边框:(xoffset, yoffset, width, height)
— xoffset 和 yoffset 表示距离左上角的偏移位置
– -返回的 width 是文本的实际宽度(像素为单位)
– -如果指向的选项是不可见的,那么返回值是 None
curselection()
— 返回一个元组,包含被选中的选项的序号(从 0 开始)
— 如果没有选中任何选项,返回一个空元组
delete(first, last=None)
— 删除参数 first 到 last 范围内(包含 first 和 last)的所有选项
– -如果忽略 last 参数,表示删除 first 参数指定的选项
get(first, last=None)
— 返回一个元组,包含参数 first 到 last 范围内(包含 first 和 last)的所有选项的文本
—如果忽略 last 参数,表示返回 first 参数指定的选项的文本
index(index)
— 返回与 index 参数相应的选项的序号(例如 lb.index(“end”))
insert(index, *elements)
– 添加一个或多个项目到 Listbox 中
– 使用 lb.insert(“end”) 添加新选项到末尾
itemcget(index, option)
— 获得 index 参数指定的项目对应的选项(由 option 参数指定)
itemconfig(index, **options)
— 设置 index 参数指定的项目对应的选项(由可变参数 **option 指定)
nearest(y)
—返回与给定参数 y 在垂直坐标上最接近的项目的序号
scan_dragto(x, y)
— 见下方 scan_mark(x, y)
scan_mark(x, y)
— 使用这种方式来实现 Listbox 内容的滚动
– -需要将鼠标按钮事件及当前鼠标位置绑定到 scan_mark(x, y) 方法,然后再将 事件及当前鼠标位置绑定到 scan_dragto(x, y) 方法,就可以实现 Listbox 在当前位置和 sacn_mack(x, y) 指定的位置 (x, y) 之间滚动
see(index)
— 调整列表框的位置,使得 index 参数指定的选项是可见的
select_anchor(index)
— 与 selection_anchor(index) 相同,见下方解释
select_clear(first, last=None)
— 与 selection_clear(first, last=None) 相同,见下方解释
select_includes(index)
—与 selection_includes(index) 相同,见下方解释
select_set(first, last=None)
— 与 selection_set(first, last=None) 相同,见下方解释
selection_anchor(index)
— 在 index 参数的位置下一个锚点,此后你就可以通过特殊索引 “anchor” 访问
selection_clear(first, last=None)
— 取消参数 first 到 last 范围内(包含 first 和 last)选项的选中状态
— 如果忽略 last 参数,则只取消 first 参数指定选项的选中状态
selection_includes(index)
— 返回 index 参数指定的选项的选中状态
— 返回 1 表示选中,返回 0 表示未选中
selection_set(first, last=None)
— 设置参数 first 到 last 范围内(包含 first 和 last)选项为选中状态
— 如果忽略 last 参数,则只设置 first 参数指定选项为选中状态
size()
— 返回 Listbox 组件中选项的数量
xview(*args)
— 该方法用于在水平方向上滚动 Listbox 组件的内容,一般通过绑定 Scollbar 组件的 command 选项来实现(具体操作参考:Scrollbar)
— 如果第一个参数是 “moveto”,则第二个参数表示滚动到指定的位置:0.0 表示最左端,1.0 表示最右端
—如果第一个参数是 “scroll”,则第二个参数表示滚动的数量,第三个参数表示滚动的单位(可以是 “units” 或 “pages”),例如:xview(“scroll”, 3, “pages”)表示向右滚动三行
xview_moveto(fraction)
— 跟 xview(“moveto”, fraction) 一样
xview_scroll(number, what)
— 跟 xview(“scroll”, number, what) 一样
yview(*args)
— 该方法用于在垂直方向上滚动 Listbox 组件的内容,一般通过绑定 Scollbar 组件的 command 选项来实现(具体操作参考:Scrollbar)
– 如果第一个参数是 “moveto”,则第二个参数表示滚动到指定的位置:0.0 表示最顶端,1.0 表示最底端
– 如果第一个参数是 “scroll”,则第二个参数表示滚动的数量,第三个参数表示滚动的单位(可以是 “units” 或 “pages”),例如:yview(“scroll”, 3, “pages”) 表示向下滚动三页
yview_moveto(fraction)
— 跟 yview(“moveto”, fraction) 一样
yview_scroll(ナンバー、どのような)
-同様のyview( "スクロール"、数、どのような)