Tkinter

使用

Posted by JackyCJ on April 21, 2020

Tkinter使用

Entry

Treeview

Scrollbar

Listbox

Listbox为列表框控件,它可以包含一个或多个文本项(text item),可以设置为单选或多选。使用方式为Listbox(root,option…)。

常用的参数列表如下:

参数 描述
master 代表了父窗口
bg 背景色,如bg=”red”, bg=”#FF56EF”
fg 前景色,如fg=”red”, fg=”#FF56EF”
height 设置显示高度、如果未设置此项,其大小以适应内容标签
relief 指定外观装饰边界附近的标签,默认是平的,可以设置的参数:flat、groove、raised、ridge、solid、sunken
width 设置显示宽度,如果未设置此项,其大小以适应内容标签
state 设置组件状态;正常(normal),激活(active),禁用(disabled)
bd 设置Button的边框大小;bd(bordwidth)缺省为1或2个像素
selectmode 选择模式,MULTIPLE:多选 BROWSE:通过鼠标的移动选择 EXTENDED:shift和ctrl配合使用
listvariable 设置listvariable属性

一些常用的函数:

函数 描述
insert 追加item,如listbox.insert(0,”addBox1”,”addBox2”)
delete 删除item,如listbox.delete(3,4),删除全部(0,END)
select_set 选中,如listbox.select_set(0,2)
select_clear 取消选中如listbox.select_clear(0,1)
get 返回制定索引的项值,如listbox.get(1);返回多个项值,返回元组,如listbox.get(0,2);返回当前选中项的索引listbox.curselection()
curselection() 返回当前选中项的索引,如listbox.curselection()
selection_includes 判断当前选中的项目中是否包含某项,如listbox.selection_includes(4)
  1. 实例

实例1

from tkinter import *
 
 
def show_msg(*args):
    indexs = listbox1.curselection()
    index = int(indexs[0])
    listbox2.see(index)
    listbox2.select_set(index)
 
myWindow = Tk()
myWindow.title("listbox练习")
#创建列表显示内容
names = ("梅长苏","誉王","飞流","夏冬","霓凰郡主","蒙挚","萧景睿","谢玉")
players = ("胡歌","黄维德","吴磊","张龄心","刘涛","陈龙","程皓枫","刘奕君")  # 刘奕君
 
list1 = StringVar(value=names)
list2 = StringVar(value=players)
 
#创建两个Listbox,分别设置为单选、多选类型
listbox1 = Listbox(myWindow,height=len(names),listvariable=list1,selectmode="browse")
listbox2 = Listbox(myWindow,height=len(players),listvariable=list2,selectmode="extended")
 
listbox1.grid(row=1,column=1,padx=(10,5),pady=10)
listbox2.grid(row=1,column=2,padx=(5,10),pady=10)
 
listbox1.select_set(4)
# listbox2.select_set(1,5)
 
#设置第二个表格的项目颜色等
for i in range(len(players)):
    listbox2.itemconfig(i,fg="blue")
    if not i%2:
        listbox2.itemconfig(i,bg="#f0f0ff")
 
#为第一个Listbox设置绑定事件
listbox1.bind("<<ListboxSelect>>",show_msg)
 
myWindow.mainloop()