一、目标
学习Tkinter制作窗体软件的基础,Listbox,带滚动条的Listbox,ctrl+shift多选。
二、试验平台
windows7 , python3.7
三、直接上代码
import tkinter
import time
win = tkinter.Tk()
win.title("Kahn Software v1") # #窗口标题
win.geometry("500x300+200+20") # #窗口位置500后面是字母x
lb = tkinter.Listbox(win, selectmode=tkinter.BROWSE) # #光标松开选中
lb.pack()
for item in ["ni", "hao", "hello", "world", "girl", "bly"]:
lb.insert(tkinter.END, item)
lb.insert(tkinter.ACTIVE, "action...") # #在顶部添加元素
lb.insert(tkinter.END, ["heheda", "kaka"]) # #在末尾添加元素
# lb.select_set(2) # #选中第3个值
# lb.select_set(2, 5) # #选中第3个到第6个原数
# lb.select_clear(1) # #取消第二个
# lb.select_clear(0, 2) # #取消第一个到第三个
# lb.delete(1, 3) # #删除列表框中的1到3的数据
# lb.delete(1) # #删除列表中的第一个数据
# print(lb.size()) # #获取列表中元素的数量
print(lb.get(5)) # #取第6个元素的值
# print(lb.get(0, 2)) # #取第1个到第3个元素的值,返回结果是个元组()
# print(lb.curselection()) # #打印当前选中的索引值,返回元组()
# print(lb.select_includes(2)) # #判断第3个值是否被选中了,返回结果布尔值
win.mainloop() # #窗口持久化
四、例子2
import tkinter
import time
def xFunc(event):
# print(f"--lb.get:{lb.get()}----lb.curselection:{lb.get(lb.curselection())}")
print(lb.get(lb.curselection())) # #获取选中的元素的值
win = tkinter.Tk()
win.title("Kahn Software v1") # #窗口标题
win.geometry("500x300+200+20") # #窗口位置500后面是字母x
xVariable = tkinter.StringVar() # #绑定string类型的变量
lb = tkinter.Listbox(win, selectmode=tkinter.SINGLE, listvariable=xVariable) # #光标按下选中
lb.pack()
for item in ["ni", "hao", "hello", "world", "girl", "bly"]:
lb.insert(tkinter.END, item)
# print(xVariable.get()) # #取列表的所有元素的值
# xVariable.set(("k", "a", "h", "n")) # #重新设置列表中的值
lb.bind("<Double-Button-1>", xFunc) # #左键双击某条元素,执行方法
win.mainloop() # #窗口持久化
kahn 2019年4月29日23:06:31
五、带滚动条的Listbox,ctrl+shift多选。
import tkinter
win = tkinter.Tk()
win.title("Kahn Software v1") # #窗口标题
# #创建Listbox
lb = tkinter.Listbox(win, selectmode=tkinter.EXTENDED) # #可以按住ctrl或shift选中
# lb = tkinter.Listbox(win, selectmode=tkinter.MULTIPLE) # #按下点击选中,可多选
# lb.pack()
xList = []
for i in range(1, 20):
xList.append("kahn" + str(i))
for i in xList:
lb.insert(tkinter.END, i)
# #创建滚动条
sc = tkinter.Scrollbar(win) # #创建滚动条
sc.pack(side=tkinter.RIGHT, fill=tkinter.Y) # #将滚动条绑定到窗体右侧,填充为Y轴
lb.configure(yscrollcommand=sc.set) # #配置listbox的配置文件
lb.pack(side=tkinter.LEFT, fill=tkinter.BOTH) # #配置listbox的位置
sc['command'] = lb.yview
win.mainloop() # #窗口持久化