tkinter listbox 双击怎么清空listbox

Access denied |
used Cloudflare to restrict access
Please enable cookies.
What happened?
The owner of this website () has banned your access based on your browser's signature (3bae4ecab72d2816-ua98).Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口,位Python的内置模块,直接import tkinter即可使用。
作为实践, 用Tkinter做了个ascii码转化查询表
1.&产品介绍
通过输入字符或数字查询对应的信息
通过选择列表中的信息查询对应的信息
2.&设计规划
3. 相关知识
首先看怎么产生第一个窗口
from Tkinter import *
#引用Tk模块
root = Tk()
#初始化Tk()
root.mainloop()
#进入消息循环
几个常用属性
title: 设置窗口标题
geometry: 设置窗口大小
resizable():设置窗口是否可以变化长 宽
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
root.title("hello world")
root.geometry('200x100')
#是x 不是*
root.resizable(width=False, height=True) #宽不可变, 高可变,默认为True
root.mainloop()
介绍以下几个控件的用法
说明每个控件最后要加上pack().否则控件是无法显示的.
  Label(根对象, [属性列表])
text && 要现实的文本
bg  & 背景颜色
font & &字体(颜色, 大小)
width  控件宽度
height 控件高度
  以下介绍的控件差不多都有这几个属性, 更详细的属性查看参考网页
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
root.title("hello world")
root.geometry('300x200')
l = Label(root, text="show", bg="green", font=("Arial", 12), width=5, height=2)
l.pack(side=LEFT)
#这里的side可以赋值为LEFT
root.mainloop()
  在屏幕上创建一块矩形区域,多作为容器来布局窗体
  Frame(根对象, [属性列表])
&&&& 要在控件中出现这样的四个词语
&&&&&&&&&&&&&&&& 校训
&&&&&&&&& 厚德&&&&&& &敬业
&&&&&&&&& 博学&&&&&&& 乐群&&&&&
  可以规划为&&&&&&&&&
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
root.title("hello world")
root.geometry('300x200')
Label(root, text='校训'.decode('gbk').encode('utf8'), font=('Arial', 20)).pack()
frm = Frame(root)
frm_L = Frame(frm)
Label(frm_L, text='厚德'.decode('gbk').encode('utf8'), font=('Arial', 15)).pack(side=TOP)
Label(frm_L, text='博学'.decode('gbk').encode('utf8'), font=('Arial', 15)).pack(side=TOP)
frm_L.pack(side=LEFT)
frm_R = Frame(frm)
Label(frm_R, text='敬业'.decode('gbk').encode('utf8'), font=('Arial', 15)).pack(side=TOP)
Label(frm_R, text='乐群'.decode('gbk').encode('utf8'), font=('Arial', 15)).pack(side=TOP)
frm_R.pack(side=RIGHT)
frm.pack()
root.mainloop()
  创建单行文本框
  创建:lb =Entry(根对象, [属性列表])
  绑定变量 var=StringVar()&&& lb=Entry(根对象, textvariable = var)
  获取文本框中的值&& var.get()
  设置文本框中的值 & var.set(item1)
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
root.title("hello world")
root.geometry()
var = StringVar()
e = Entry(root, textvariable = var)
var.set("hello")
root.mainloop()
  向该空间内输入文本
  t = Text(根对象)
  插入:t.insert(mark, 内容)
  删除:t.delete(mark1, mark2)
  其中,mark可以是行号,或者特殊标识,例如
INSERT:光标的插入点CURRENT:鼠标的当前位置所对应的字符位置
END:这个Textbuffer的最后一个字符
SEL_FIRST:选中文本域的第一个字符,如果没有选中区域则会引发异常
SEL_LAST:选中文本域的最后一个字符,如果没有选中区域则会引发 异常
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
root.title("hello world")
root.geometry('300x200')
t = Text(root)
t.insert(1.0, 'hello\n')
t.insert(END, 'hello000000\n')
t.insert(END, 'nono')
root.mainloop()
3.5 Button
  创建按钮
  Button(根对象, [属性列表])
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
root.title("hello world")
root.geometry()
def printhello():
t.insert('1.0', "hello\n")
t = Text()
Button(root, text="press", command = printhello).pack()
root.mainloop()
3.6 Listbox
  列表控件,可以含有一个或多个文本想,可单选也可多选
  创建:lb = ListBox(根对象, [属性列表])
  绑定变量 var=StringVar()&&& lb=ListBox(根对象, listvariable = var)
  得到列表中的所有值&& var.get()
  设置列表中的所有值 & var.set((item1, item2, .....))
  添加:lb.insert(item)
  删除:lb.delete(item,...)
  绑定事件 lb.bind('&ButtonRelease-1&', 函数)
  获得所选中的选项 lbl.get(lb.curselection())
  selectmode可以为BROWSE MULTIPL SINGLE
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
root.title("hello world")
root.geometry()
def print_item(event):
print lb.get(lb.curselection())
var = StringVar()
lb = Listbox(root,
listvariable = var)
list_item = [1, 2, 3, 4]
#控件的内容为1 2 3 4
for item in list_item:
lb.insert(END, item)
lb.delete(2, 4)
#此时控件的内容为1 3
var.set(('a', 'ab', 'c', 'd'))
#重新设置了,这时控件的内容就编程var的内容了
print var.get()
lb.bind('&ButtonRelease-1&', print_item)
root.mainloop()
3.7 Scrollbar
  在屏幕上创建一块矩形区域,多作为容器来布局窗体
  Frame(根对象, [属性列表]), 最长用的用法是和别的控件一起使用.
from Tkinter import *
root = Tk()
root.title("hello world")
root.geometry()
def print_item(event):
print lb.get(lb.curselection())
var = StringVar()
lb = Listbox(root, height=5, selectmode=BROWSE, listvariable = var)
lb.bind('&ButtonRelease-1&', print_item)
list_item = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
for item in list_item:
lb.insert(END, item)
scrl = Scrollbar(root)
scrl.pack(side=RIGHT, fill=Y)
lb.configure(yscrollcommand = scrl.set)
lb.pack(side=LEFT, fill=BOTH)
scrl['command'] = lb.yview
root.mainloop()
4. 源码附件
# -*- coding:cp936 -*-
from Tkinter import *
class show:
num_info_hash = {}
char_info_hash = {}
num_char = {}
char_num = {}
def __init__(self):
self.root = Tk()
self.root.title("ASCII码查询".decode('gbk').encode('utf8'))
#self.root.geometry('470x320')
self.frm = Frame(self.root)
Label(self.root, text="ASCII码查询".decode('gbk').encode('utf8'), font=('Arial', 15)).pack()
self.load_sys()
self.frm = Frame(self.root)
self.frm_L = Frame(self.frm)
self.frm_LT = Frame(self.frm_L)
self.var_char = StringVar()
Entry(self.frm_LT, textvariable=self.var_char, width = 5, font =('Verdana',15)).pack(side=RIGHT)
Label(self.frm_LT, text = '字符'.decode('gbk').encode('utf8'), font =('Arial',12)).pack(side=LEFT)
self.frm_LT.pack()
self.var_L_char = StringVar()
self.lb_char = Listbox(self.frm_L, selectmode=BROWSE, listvariable=self.var_L_char, font =('Verdana',12), width=10, height=13)
self.lb_char.bind('&ButtonRelease-1&', self.get_char)
for key in self.char_num:
self.lb_char.insert(END, key[0])
self.scrl_char = Scrollbar(self.frm_L)
self.scrl_char.pack(side=RIGHT, fill=Y)
self.lb_char.configure(yscrollcommand = self.scrl_char.set)
self.lb_char.pack(side=LEFT, fill=BOTH)
self.scrl_char['command'] = self.lb_char.yview
self.frm_L.pack(side = LEFT)
self.frm_M = Frame(self.frm)
self.t_show = Text(self.frm_M, width=20, height=5, font =('Verdana',15))
self.t_show.insert('1.0', '')
self.t_show.pack()
self.frm_MB = Frame(self.frm_M)
Button(self.frm_MB, text="清除".decode('gbk').encode('utf-8'), command=self.clear, width=6, height=1, font=('Arial', 10)).pack(side=LEFT)
Button(self.frm_MB, text="查询".decode('gbk').encode('utf-8'), command=self.search, width=6, height=1, font=('Arial', 10)).pack(side=RIGHT)
self.frm_MB.pack(side=BOTTOM)
self.frm_M.pack(side=LEFT)
self.frm_R = Frame(self.frm)
self.frm_RT = Frame(self.frm_R)
self.var_int = StringVar()
Entry(self.frm_RT, textvariable=self.var_int, width=5, font =('Verdana',15)).pack(side=LEFT)
Label(self.frm_RT, text='十进制'.decode('gbk').encode('utf-8'), font =('Arial',12)).pack(side=RIGHT)
self.frm_RT.pack()
self.var_R_int = StringVar()
self.lb_int = Listbox(self.frm_R, selectmode=BROWSE, listvariable=self.var_R_int, font =('Verdana',12), width=10, height=13)
self.lb_int.bind('&ButtonRelease-1&', self.get_int,)
for key in self.num_char:
self.lb_int.insert(END, key[0])
self.scrl_int = Scrollbar(self.frm_R)
self.scrl_int.pack(side=RIGHT, fill=Y)
self.lb_int.configure(yscrollcommand = self.scrl_int.set)
self.lb_int.pack(side=LEFT, fill=BOTH)
self.scrl_int['command'] = self.lb_int.yview
self.frm_R.pack(side = LEFT)
self.frm.pack()
def get_char(self, event):
self.var_char.set('')
self.var_int.set('')
tmp = self.lb_char.get(self.lb_char.curselection())
self.var_char.set(tmp)
def get_int(self, event):
self.var_int.set('')
self.var_char.set('')
tmp = self.lb_int.get(self.lb_int.curselection())
self.var_int.set(tmp)
def clear(self):
self.var_char.set('')
self.var_int.set('')
self.t_show.delete('1.0', '10.0')
def search(self):
self.t_show.delete('1.0', '100.0')
tmp_char = self.var_char.get()
tmp_int = self.var_int.get()
if tmp_char != '':
if not self.char_info_hash.has_key(tmp_char):
self.t_show.insert('1.0', "您输入的字符不在128个字符之内".decode('gbk').encode('utf8'))
self.t_show.insert('1.0', '十六进制:'.decode('gbk').encode('utf8') + '\t' + self.char_info_hash[tmp_char][2] + '\n')
self.t_show.insert('1.0', '十进制:'.decode('gbk').encode('utf8') +'\t' + self.char_info_hash[tmp_char][1] + '\n')
self.t_show.insert('1.0', '八进制:'.decode('gbk').encode('utf8') + '\t' + self.char_info_hash[tmp_char][0] + '\n')
self.t_show.insert('1.0', '字符:'.decode('gbk').encode('utf8') +'\t' + tmp_char + '\n\n')
self.var_char.set('')
self.var_int.set('')
elif tmp_int !='':
if not self.num_info_hash.has_key(tmp_int):
self.t_show.insert('1.0', "请输入介于0~127之间的整数".decode('gbk').encode('utf8'))
self.t_show.insert('1.0', '字符:'.decode('gbk').encode('utf8') +'\t' + self.num_info_hash[tmp_int][2] + '\n')
self.t_show.insert('1.0', '十六进制:'.decode('gbk').encode('utf8') + '\t' + self.num_info_hash[tmp_int][1] + '\n')
self.t_show.insert('1.0', '八进制:'.decode('gbk').encode('utf8') + '\t' + self.num_info_hash[tmp_int][0] + '\n')
self.t_show.insert('1.0', '十进制:'.decode('gbk').encode('utf8') + '\t' + tmp_int + '\n\n')
self.var_char.set('')
self.var_int.set('')
self.t_show.insert('1.0', '请选择或输入'.decode('gbk').encode('utf8'))
def load_sys(self):
f = file('asc')
for line in f:
chunk = line.strip().split('\t')
self.num_char[int(chunk[1])] = chunk[3]
self.char_num[chunk[3]] = int(chunk[1])
self.num_info_hash[chunk[1]] = [chunk[0], chunk[2], chunk[3]]
self.char_info_hash[chunk[3]] = [chunk[0], chunk[1], chunk[2]]
self.num_char =sorted(self.num_char.iteritems(), key = lambda asd:asd[0])
self.char_num =sorted(self.char_num.iteritems(), key = lambda asd:asd[1])
def main():
d = show()
mainloop()
if __name__== "__main__":
通用控件属性:
文件路径:.cn/s/blog_1892q.html
阅读(...) 评论()TKINTER教程之LISTBOX篇_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
TKINTER教程之LISTBOX篇
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢只需一步,快速开始
请完成以下验证码
后使用快捷导航没有帐号?
请完成以下验证码
查看: 6885|回复: 12
Tkinter 窗口组件:Listbox
& 累计签到:2227 天连续签到:8 天
已有 12 人购买&
本主题需向作者支付 10 鱼币 才能浏览
本帖被以下淘专辑推荐:
& |主题: 10, 订阅: 10
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
& 累计签到:128 天连续签到:1 天
楼主辛苦,这么多方法,够我练习好久了
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
& 累计签到:3 天连续签到:1 天
如何返回选定的选项呢?
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
& 累计签到:1 天连续签到:1 天
。。。。。。。。。。。
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
& 累计签到:7 天连续签到:1 天
这些方法没有点例子,要自己搞好久
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
& 累计签到:116 天连续签到:1 天
学习啦,谢谢小甲鱼老师
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
& 累计签到:29 天连续签到:1 天
方法好多,需要自己一个一个进行尝试!
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
& 累计签到:35 天连续签到:1 天
如何修改书中p15_19代码中的height选项,我不知道该把这段代码“theLB = Listbox(master, hetht = 11)”插入到哪儿。。。
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
& 累计签到:11 天连续签到:1 天
10鱼币 = = == = ==
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
& 累计签到:50 天连续签到:1 天
如何返回选定的选项呢?
我查了查资料,好像没有command方法,但可以bind一个函数,效果差不多的。
具体可以参照下面这个链接:
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
& 累计签到:1 天连续签到:1 天
如何返回选定的选项呢?
curselection方法
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
& 尚未签到
如何返回选定的选项呢?
print(thelb.get(ACTIVE))
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
& 累计签到:3 天连续签到:1 天
如何返回选定的选项呢?
可以同样用一个按键
然后定义方法,
form tkinter import *
root = Tk()
def listBoxOper():
& & print(listbox1.get(ACTIVE))
listbox1 = Listbox(root)
listbox1.pack()
for i in ['a','b','c','d']:
& & listbox1.insert(END, i)
button1 = Button(root, text = 'getItem', command = listBoxOper)
button1.pack()
mainloop()
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
小甲鱼强烈推荐 /1
编写一个小爬虫,将豆瓣 TOP250 的电影名、评分以及相关的资料保存到一个文件中。
•••(
Powered by

我要回帖

更多关于 tkinter listbox 的文章

 

随机推荐