学习笔记(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 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()

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++简单工厂模式

核心思想&#xff1a;用一个工厂类根据不同的输入条件new出不同的派生类指针&#xff0c;然后由多态调用不同派生类中virtual函数&#xff0c;得到不同的结果 所有的判断处理在工厂类中完成&#xff0c;通过CreateFactory函数&#xff0c;根据不同的类型&#xff0c;new出派生类…

Linux文本查看命令之touch

touch可以用来创建文件或者修改文件的时间戳如果touch的文件不存在&#xff0c;就创建改文件touch命令可以修改文件的Access time和 Modify time-a 可以仅修改Access time注意&#xff1a;由于Access time的改变&#xff0c;Change time也改变了&#xff0c;但是如果cat该文件&…

使用腾讯开发平台获取QQ用户数据资料

<今天是七夕&#xff1a;祝大家七夕嗨皮&#xff0c;前可么么哒&#xff0c;后可啪啪啪> Tips&#xff1a;本篇博客将教你如何使用腾讯开发平台获取QQ用户资料 ------------------------------------------------------------------------------------------------------…

LINUX REDHAT第十单元文档

1.系统日志默认分类#### /var/log/messages##系统服务及日志&#xff0c;包括服务的信息&#xff0c;报错等等 /var/log/secure##系统认证信息日志 /var/log/maillog##系统邮件服务信息 /var/log/cron##系统定时任务信息 /var/log/boot.log##系统启动信息 2.日志管理服务rsyslo…

Spring4 MVC文件下载实例

这篇文章将向您展示如何使用Spring MVC4执行文件下载&#xff0c;我们将看到应用程序从文件系统内部以及外部文件下载文件。本教程的主要亮点&#xff1a; 下载文件是相当简单的&#xff0c;涉及以下步骤。 创建一个InputStream到文件用于下载。查找MIME类型下载文件的内容。–…

不可不知的:iOS开发的22个诡异技巧

结合自身的实践开发经验总结出了22个iOS开发的小技巧&#xff0c;以非常欢乐的语调轻松解决开发过程中所遇到的各种苦逼难题&#xff0c;光读着便已忍俊不禁。 1. TableView不显示没内容的Cell怎么办&#xff1f; 类似于图1&#xff0c;我不想让下面的那些空显示。很简单&#…

linux删除之前的文件日志

linux下每天都在产生LOG日志文件&#xff0c;如果不定期删除&#xff0c;迟早挤爆硬盘&#xff0c;如果手动删除&#xff0c;几次可以&#xff0c;不是长久之计。这些事交给Linux系统就可以解决。 试验环境&#xff1a; 系统&#xff1a;CentOS 6.5 x64 测试路径、测试文件名、…

线程操作范例

实例要求&#xff1a; 设计一个线程操作类&#xff0c;要求可以产生三个线程对象&#xff0c;并可以分别设置三个线程的休眠时间。如下所示&#xff1a; 问怎么设计&#xff1f; 分析 从之前学习知道&#xff0c;线程的实现有两种方式&#xff0c;一种是继承Thread类&#xff0…

【转】Unity3D研究院之使用Xamarin Studio调试Unity程序

如果你是在windows上开发&#xff0c;就无视这篇文章吧。 为什么要用Xamarin Studio 你可以看看我之前的文章 http://www.xuanyusong.com/archives/2683 unity4.x 和 unity5.x都可以用Xamarin Studio 来调试&#xff0c;亲测&#xff01; 先下载插件&#xff1a;http://files.u…

学习笔记(56):Python实战编程-Menu

立即学习:https://edu.csdn.net/course/play/19711/343119?utm_sourceblogtoedu 1.菜单menu: 1&#xff09;弹出式菜单&#xff0c;类似与电脑桌面右击弹出的菜单成为弹出菜单&#xff1b; 2&#xff09;窗体式菜单&#xff1a;类似于word上面的菜单栏 2.窗体菜单创建的步骤…

SystemCenter2012SP1实践(19)集成WSUS更新服务器2012

今天我们的任务是配置一台WSUS&#xff08;Windows更新服务器&#xff09;&#xff0c;以方便后期通过"基线"与其组合&#xff0c;完成虚拟机的系统补丁升级。WSUS是Windows系统运维自动化的一个重要组成部分&#xff0c;通过它&#xff0c;能够节省我们很多的运维时…

LintCode: 3 Sum

C 把3个数求和&#xff0c;转变为2个数求和 1. 把数组排序 2. 注意过滤重复值 3. 从前到后遍历&#xff0c;游标i 4. 从后边数中找start &#xff0b; end &#xff1d; -arr[i]的2 sum 5. start &#xff0b; end < -arr[i], start 6. start end > -arr[i], end-- 7. s…

最优化课堂笔记03:整数规划

二、整数规划问题的求解方法&#xff1a;&#xff08;重点&#xff1a;分枝定界法&#xff09; 1.割平面法 1&#xff09;基本思想 2&#xff09;求解步骤 2&#xff09;重点&#xff1a;分枝定界法&#xff08;极大化的问题&#xff09;考试不会分很多次枝&#xff0c;用图解…

正整数分解为几个连续自然数之和

题目&#xff1a;输入一个正整数&#xff0c;若该数能用几个连续正整数之和表示&#xff0c;则输出所有可能的正整数序列。 一个正整数有可能可以被表示为n(n>2)个连续正整数之和&#xff0c;如&#xff1a; 1512345 15456 1578 有些数可以写成连续N&#xff08;>1&#…

egret3D与2D混合开发,画布尺寸不一致的问题

egret3d的GUI目前还没有&#xff0c;在做3d游戏的时候没有UI可用&#xff0c;只能使用egret2d的EUI组件库&#xff0c;egret3d与egret2d混合开发&#xff0c;canvas3d的大小与位置与canvas2d并没有重合&#xff0c;导致适配ui时总是错位。在做手机屏幕适配的时候必须解决这种问…

最优化作业讲解01:标准化线性规划(LP)

1.1、错误点&#xff1a;求得了目标函数最优解&#xff0c;但是没有将结果返回去最大值 2.4、错误点&#xff1a;x2变量的处理上&#xff0c;x2不是任意变量不可以按照任意变量来进行变换 x6 x2 5&#xff0c;且x6>0 2.9、 易错点&#xff1a; 1&#xff09;基变量要满足…

React Native 常见问题集合

在使用React Native时候&#xff0c;我记录下比较常遇到的问题&#xff0c;分为以下几类&#xff1a; 1. 调试问题 2. 写法问题 3. 疑难问题 4. 奇怪问题 调试问题 1. 在react-native run-android运行后&#xff0c;真机上打开的空白页面。 我测试机是红米2A&#xff08;Androi…

学习笔记(57):Python实战编程-Treeview

立即学习:https://edu.csdn.net/course/play/19711/343120?utm_sourceblogtoedu 1.树状结构Treeview:分为树状折叠式列表和列表显示&#xff0c;是一种很重要数据列表展示的形式 2.树状列表建立步骤&#xff1a; 1&#xff09;创建一个树状列表&#xff1a;在这里可以设置显示…

验证VSPHERE5 支持大于2TB磁盘

VSPHERE5 使用GTP格式的分区表&#xff0c;文件系统类型为VMFS5.X&#xff0c;直接支持大于2TB的磁盘分区&#xff0c;相对于VSPHERE4不同 vsphere4使用MSDOS格式的分区表&#xff0c;文件系统类型为VMFS3.X 而vsphere5 block块大小统一为1MB&#xff0c;而不是vsphere4的多种格…

Java Inner Class 内部类

内部类 Inner Class 一个内部类可以定义在另一个类里&#xff0c;可以定义在函数里&#xff0c;甚至可以作为一个表达式的一部分。 Java中的内部类共分为四种&#xff1a; 静态内部类static inner class (also called nested class) 成员内部类member inner class 局部内部类l…