学习笔记(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出派生类…

Saltstack的pillar组件(6)

pillar也是Saltstack最重要的组件之一&#xff0c;其作用是定义与被控主机相关的任何数据&#xff0c;定义好的数据可以被其他组件使用&#xff0c;如模板、state、API等。在pillar中定义的数据与不同业务特性的minion相关联&#xff0c;这样不同的minion只能看到自己匹配的数据…

redis投票计数

<?php /*** * 缓存利用测试&#xff0c;这里我们获取传过来的投票数据&#xff0c;每次加1&#xff0c;如果增加到了设定值&#xff0c;才将投票* 次数写回mysql&#xff0c;这大大减轻了与mysql链接的开销&#xff0c;redis的使用由此可见一斑* var unknown_type* 来自&am…

在linux系统中安装VSCode(Visual Studio Code)

1.从官网下载压缩包(话说下载下来解压就直接可以运行了咧,都不需要make) 访问Visual Studio Code官网 https://code.visualstudio.com/docs?dvlinux64 我是64位的: wget https://az764295.vo.msecnd.net/stable/7ba55c5860b152d999dda59393ca3ebeb1b5c85f/code-stable-code…

学习笔记(52):Python实战编程-Radiobutton

立即学习:https://edu.csdn.net/course/play/19711/343115?utm_sourceblogtoedu 单选钮&#xff1a;Radiobutton 1&#xff09;相对于大部分组件而言&#xff0c;最大的区别在于单选钮绑定事件是直接通过构建单选钮时方法中的command参数来进行事件的绑定&#xff0c;而其他的…

Linux文本查看命令之touch

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

dedecms手机站要同步pc站的图片

首先在dede目录下面找到 /include/extend.func.php 文件 //添加自定义函数 function replaceurl($newurl){ $newurlstr_replace(src"/1304/,src"http://www.xxx.com/1304/,$newurl); return $newurl;} 函数调用&#xff1a; functionreplaceurl(me) 例如&#xff1…

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

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

C++的命名规范

1、 变量名前缀 i_ 类内数据成员&#xff08;对象级成员&#xff09; instance scope c_ 类内静态数据成员&#xff08;类级成员&#xff09; class scope g_ 全局变量 global scope f_ 文件作用域变量&#xff08;静态变量&…

LINUX REDHAT第十单元文档

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

学习笔记(53):Python实战编程-Checkbutton

立即学习:https://edu.csdn.net/course/play/19711/343116?utm_sourceblogtoedu 复选框Checkbutton:与单选框是相对的&#xff0c;一些用法都是类似的&#xff0c;见单选框 注&#xff1a;在设置复选框的title和index时&#xff0c;设置为选中时onvalue 1,未选中offvalue 0 …

svn merge 回滚

聊一聊 svn merge 命令。 svn 是啥就不用介绍了吧&#xff0c;谁用谁知道。有了 svn&#xff0c;开发者只要把代码提交上去&#xff0c;无论山崩地裂、电脑进水、硬盘格式化&#xff0c;哪怕换了一台电脑&#xff0c;都能随时把代码找回来。不过从自己工作中看到的现象来说&…

使用视觉信息,为什么能把移动机器人的空间位置信息记录下来

1、首先由相机的世界坐标系&#xff0c;物体的世界坐标-》相机坐标-》到投影面坐标-》到像素坐标&#xff1b; 最终一个世界中物体的三维点被记录在相机的一个转化的坐标系中&#xff1b;当同时拿到很多的物体坐标时候&#xff0c;此时相机中就拥有了该 整个观察到物体的坐标…

大三实验室 经验总结

1.高电压采样时&#xff0c;需要将多个电阻串联起来而不能使用一个等效的大电阻&#xff0c;因为同样封装下&#xff0c;一个电阻阻值太大能承受的电流就会比较小 PI*I*R。 2.单片机&#xff0c;DSP,FPGA的纯输出功能IO口&#xff0c;都应该加上74HC04非门作为硬件防火墙&#…

Spring4 MVC文件下载实例

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

学习笔记(54):Python实战编程-Scale

立即学习:https://edu.csdn.net/course/play/19711/343117?utm_sourceblogtoedu 1.滑块组件Scale: 用于定义一定范围的区间&#xff0c;如音量大小的调整就是滑块组件&#xff0c;这里是以滑动滑块来改变标签文字的大小为例进行说明的 2.知识点&#xff1a; 1&#xff09;滑…

不可不知的: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…