python tkinter Listbox用法
python tkinter组件的Listbox的用法,见下面代码的演示:
from tkinter import * root=Tk()
v=StringVar()
#Listbox与变量绑定'
lb1=Listbox(root,listvariable=v)
v.set(('','','','',''))
print(v.get())
lb1.pack() #.创建一个可以多选的Listbox,使用属性selectmaod'
lb2=Listbox(root,selectmode=MULTIPLE)
for item in range(10):
lb2.insert(END,str(item))
# 有两个特殊的值ACTIVE和END,ACTIVE是向当前选中的item前插入一个
# (即使用当前选中的索引作为插入位置);END是向
# Listbox的最后一项添加插入一项 lb2.delete(1,3)
#删除全部内容,使用delete指定第一个索引值0和最后一个参数END,即可
lb2.pack() #这个属性selectmode还可以设置为BROWSE,可以通过鼠标来移动Listbox中的选中位置
# (不是移动item),
#这个属性也是Listbox在默认设置的值,这个程序与1.程序运行的结果的一样的
scrollbar=Scrollbar(root)
scrollbar.pack(side=RIGHT,fill=Y)
lb3=Listbox(root,selectmode=BROWSE,yscrollcommand=scrollbar.set)
for item in range(20):
lb3.insert(END,str(item))
lb3.pack(side=LEFT,fill=BOTH)
scrollbar.config(command=lb3.yview) #将一个垂直方向的Scrollbar和listboxs/canvases/text fields这些控件结合起来,
# 你只需要按照下面的步骤即可:
#1.将这些控件的yscrollcommand选项设置为scrollbar的set方法。
#2.将scrollbar的command选项设置为这些控件的yview方法。 print(lb3.size())
print(lb3.get(3))
print(lb3.get(3,7))
lb3.selection_set(0,10)
lb3.selection_clear(0,3)
lb3.pack() def printlist(event):
print(lb4.get(lb4.curselection())) #使用selectmode = EXPANDED使用Listbox来支持Shift和Control
lb4=Listbox(root,selectmode=EXTENDED)
lb4.bind('<Double-Button-1>',printlist)
for item in ['python','tkinter','widget']:
lb4.insert(END,item)
lb4.pack() root.mainloop()
再来一个实例:
在下面这个例子中,点击Listbox的项目,输出索引号。
from tkinter import * class make_list(Listbox):
def __init__(self,master, **kw):
frame = Frame(master)
frame.pack()
self.build_main_window(frame) kw['selectmode'] = SINGLE
Listbox.__init__(self, master, kw)
master.bind('<Button-1>', self.click_button)
master.curIndex = None def click_button(self, event):
##this block works
w = event.widget
index = int(w.curselection()[0])
value = w.get(index)
print(value)
##this doesn't
self.curIndex = self.nearest(event.y)
print(self.curIndex)
self.curIndex = event.widget.nearest(event.y)
print(self.curIndex) #display the window, calls the listbox
def build_main_window(self, frame):
self.build_listbox(frame) #listbox
def build_listbox(self, frame):
listbox = Listbox(frame)
for item in ["one", "two", "three", "four"]:
listbox.insert(END, item)
listbox.insert(END, "a list entry")
listbox.pack()
return if __name__ == '__main__':
tk = Tk()
make_list(tk)
tk.mainloop()
如果对于Tkinter的事件绑定不太熟悉,可以参见下面这篇教程:
python tkinter教程-事件绑定
python tkinter Listbox用法的更多相关文章
- Python Tkinter 学习成果:点歌软件music
笔者工作业余时间也没什么爱好,社交圈子也小,主要娱乐就是背着自己带电瓶的卖唱音响到住地附近找个人多的位置唱唱KtV. 硬件上点歌就用笔记本电脑,歌曲都是网上下载的mkv格式的含有两个音轨的视频.因此点 ...
- Tkinter Listbox(列表框)
Python - Tkinter Listbox(列表框): 列表框部件用于显示一个项目列表,用户可以选择的项目数 列表框部件用于显示一个项目列表,用户可以选择的项目数. 语法: 这里是一个简单的 ...
- 关不掉的小姐姐程序python tkinter实现 学习---打包教程
首先,我们先准备两个.py文件,还要图片文件 代码//是我自己手写的,copy时记得删掉,不然有可能错误,比如中英文啥的 当然 一些语法的无问题就百度,都能给你答案 第一个.py ...
- Python Tkinter基础控件入门实例
分享一个Python Tkinter基础控件用法的入门例子,包括窗口的显示.显示内置图片.弹出窗口.菜单等. 例子,Python Tkinter基础控件的用法 # -*- coding: utf-8 ...
- Python回调函数用法实例详解
本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...
- day01-day04总结- Python 数据类型及其用法
Python 数据类型及其用法: 本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点 ...
- 【Python】关于Python有意思的用法
开一篇文章,记录关于Python有意思的用法,不断更新 1.Python树的遍历 def sum(t): tmp=0 for k in t: if not isinstance(k,list): tm ...
- python中xrange用法分析
本文实例讲述了python中xrange用法.分享给大家供大家参考.具体如下: 先来看如下示例: >>> x=xrange(0,8) >>> print x xra ...
- 浅谈Python在信息学竞赛中的运用及Python的基本用法
浅谈Python在信息学竞赛中的运用及Python的基本用法 前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在& ...
随机推荐
- Oracle表明明存在SQL查询数据提示表不存在异常
今天同事遇到一个很奇怪的问题,恢复了一个数据库,表明明存在,用PLSQL和sqlplus都试过了,SQL语句select * from 表名,查询数据,却提示表名不存在异常 然而,使用select * ...
- Struts2/XWork 安全漏洞及解决办法
exploit-db网站在7月14日爆出了一个Struts2的远程执行任意代码的漏洞. 漏洞名称:Struts2/XWork < 2.2.0 Remote Command Execution V ...
- [转]oracle awr报告生成和分析
转自:http://blog.csdn.net/cuker919/article/details/8767328 最近由于数据库cpu占用非常高,导致VCS常常自动切换,引起很多问题. 最近学习一下数 ...
- kafka_2.10-0.8.1.1.tgz的1或3节点集群的下载、安装和配置(图文详细教程)绝对干货
运行kafka ,需要依赖 zookeeper,你可以使用已有的 zookeeper 集群或者利用 kafka自带的zookeeper. 单机模式,用的是kafka自带的zookeeper, 分布式模 ...
- flexible.js移动端适配安卓高分辨不兼容问题
根据网上找到的解决办法,对于安卓设备,把dpr=1改为当前设备的dpr if (!dpr && !scale) { if (isIPhone) { // iOS下,对于2和3的屏,用2 ...
- MongoDB:通过mongodump【时间一致性】备份,快速创建secondary复制集节点——更精简的方式2
该方式优点:快速通过mongodump初始化数据库,大大减少新的secondary节点从头开始初始化的风险:网络壅塞.oplog.rs过期.耗时太长等. 还原的关键:一致性mongodump备份 + ...
- debian、ubuntu:使用apt包管理器可能存在的问题! 让新手望而却步!
apt包管理器说好真好,说不好真不好. 最近在debian9.ubuntu18.04上安装oracle 10g 玩. 怎么都准备不好安装环境.原因就是i386构架体系的deb包总安装不正确! baid ...
- ubuntu-16.04.2-desktop-amd64.iso:安装Oracle11gR2
特点: 使用ubuntu-16.04.2-desktop-amd64.iso 不降级默认的gcc版本,(liveCD 自带默认为 gcc 5.4):仅需要建立“gcc -Wl,--no-as-need ...
- 找不到 android-support-v4 解决办法
Project->properties->Java Build Path->Libraries->Add External Jars中加入sdk目录下的extras/andro ...
- 如何在LINUX中安装VM-Tools
1.运行VM,启动你的虚拟LINUX系统. 2.切换到原系统,选择VM中的VM菜单----Install VMWare Tools. 3.在虚拟机设置里,请把你的VM-Tools的ISO文件映射到你的 ...