学习笔记(51):Python实战编程-ListBox

立即学习: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 tkinter

class 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):#定义列表1
        self.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")  # 设置一个listbox
        self.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:
                break




def main():
    mainwindow()

if __name__ == '__main__':
    main()

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有情怀的机械男

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值