立即学习:https://edu.csdn.net/course/play/19711/343113?utm_source=blogtoedu
listbox
知识点:
1)创建listbox:
self.item_listbox = tkinter.Listbox(self.root,selectmode = "multiple", font=("微软雅黑",12),fg = "black",bg = "white")#设置一个listbox,且为复选框(multiple),单选框(single)
2)设置复选还是单选:selectmode = "multiple"
3)获得当前选择项的索引:
self.item_listbox.curselection()#返回的是一个列表,获得当前listbox中被选中第一个元素的索引
4)根据索引获得项目内容
self.chosen_listbox.insert('end',self.item_listbox.get(self.chosen_index))#根据索引获得元素的内容
完整代码:
'''
设计一个简单的选择listbox,由两个listbox和两个label以及一个按钮组成,
将左边选中的元素,通过点击按钮或者双击元素,自动添加到右边的listbox中
'''
from tkinter import *
import tkinterclass mainwindow():def __init__(self):#------------创建主窗体-----------------self.root = tkinter.Tk()self.root.title("linlianqin")self.root.geometry('450x280') # 定义窗体的初始大小self.root.maxsize(1200, 1200) # 设置窗口可以显示的最大尺寸self.item_list()self.chosen_button()self.chosen_list()self.root.mainloop() # 显示窗口,这个代码一定要放在所有窗口设置的后面def item_list(self):#定义列表1self.items = ["python","c","java","PHP"]#设置一个listbox元素组成的列表self.item_label = tkinter.Label(self.root,text = "请选择你感兴趣的语言:",font = ("微软雅黑",9),fg = "white",bg = "#123333")self.item_label.grid(row = 0,column = 0)self.item_listbox = tkinter.Listbox(self.root,selectmode = "multiple", font=("微软雅黑",12),fg = "black",bg = "white")#设置一个listbox,且为复选框(multiple),单选框(single)#将元素插入到listbox当中for item in self.items:self.item_listbox.insert("end",item)#定义双击选中元素自动添加到另一个列表的事件self.item_listbox.bind("<Double-Button-1>",self.button_multiple_event)self.item_listbox.grid(row = 1,column = 0)def chosen_button(self):#定义一个添加按钮self.chosenbutton = tkinter.Button(self.root,text = "add>>>",font = ("微软雅黑",12),fg = "black",bg = "#fffffe")self.chosenbutton.bind("<Button-1>",self.button_multiple_event)self.chosenbutton.grid(row = 1,column = 1)def chosen_list(self):#定义另一个列表,用于存放选中的元素self.chosen_label = tkinter.Label(self.root, text="感兴趣的语言:", font=("微软雅黑", 9),fg="white", bg="#123393")self.chosen_label.grid(row=0, column=2)self.chosen_listbox = tkinter.Listbox(self.root, font=("微软雅黑", 12),fg="black", bg="white") # 设置一个listboxself.chosen_listbox.grid(row=1,column=2)def button_single_event(self,event):#定义按钮单选事件self.chosen_index = self.item_listbox.curselection()[0]#获得当前listbox中被选中第一个元素的索引# self.item_listbox.curselection()返回的是一个列表self.chosen_listbox.insert('end',self.item_listbox.get(self.chosen_index))#根据索引获得元素的内容def button_multiple_event(self,event):#定义按钮复选事件for self.chosen_index in self.item_listbox.curselection():self.chosen_listbox.insert('end',self.item_listbox.get(self.chosen_index))#若选中了就删除该项while True:if self.item_listbox.curselection():#如果当前由被选择中的项目self.item_listbox.delete(self.item_listbox.curselection()[0])else:breakdef main():mainwindow()if __name__ == '__main__':main()