python之Tkinter控件学习
2015-12-03 16:24
453 查看
阅读目录
1. 产品介绍
2. 设计规划
3.
相关知识
4.
源码附件
Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口,位Python的内置模块,直接import tkinter即可使用。
作为实践, 用Tkinter做了个ascii码转化查询表
回到顶部
界面
功能
通过输入字符或数字查询对应的信息
通过选择列表中的信息查询对应的信息
回到顶部
规划图
回到顶部
首先看怎么产生第一个窗口
几个常用属性
title: 设置窗口标题
geometry: 设置窗口大小
resizable():设置窗口是否可以变化长 宽
介绍以下几个控件的用法
Label
Frame
Entry
Text
Button
Listbox
Scrollbar
说明每个控件最后要加上pack().否则控件是无法显示的.
3.1 Label
说明
标签
用法
Label(根对象, [属性列表])
属性
text 要现实的文本
bg 背景颜色
font 字体(颜色, 大小)
width 控件宽度
height 控件高度
以下介绍的控件差不多都有这几个属性, 更详细的属性查看参考网页
举例
效果
3.2 Frame
说明
在屏幕上创建一块矩形区域,多作为容器来布局窗体
用法
Frame(根对象, [属性列表])
举例
要在控件中出现这样的四个词语
校训
厚德 敬业
博学 乐群
可以规划为
效果
3.3 Entry
说明
创建单行文本框
用法
创建:lb =Entry(根对象, [属性列表])
绑定变量 var=StringVar() lb=Entry(根对象, textvariable = var)
获取文本框中的值 var.get()
设置文本框中的值 var.set(item1)
举例
效果
3.4 Text
说明
向该空间内输入文本
用法
t = Text(根对象)
插入:t.insert(mark, 内容)
删除:t.delete(mark1, mark2)
其中,mark可以是行号,或者特殊标识,例如
INSERT:光标的插入点CURRENT:鼠标的当前位置所对应的字符位置
END:这个Textbuffer的最后一个字符
SEL_FIRST:选中文本域的第一个字符,如果没有选中区域则会引发异常
SEL_LAST:选中文本域的最后一个字符,如果没有选中区域则会引发 异常
举例
效果
3.5 Button
说明
创建按钮
用法
Button(根对象, [属性列表])
举例
效果
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
举例
效果
3.7 Scrollbar
说明
在屏幕上创建一块矩形区域,多作为容器来布局窗体
用法
Frame(根对象, [属性列表]), 最长用的用法是和别的控件一起使用.
举例
效果
1. 产品介绍
2. 设计规划
3.
相关知识
4.
源码附件
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()
介绍以下几个控件的用法
Label
Frame
Entry
Text
Button
Listbox
Scrollbar
说明每个控件最后要加上pack().否则控件是无法显示的.
3.1 Label
说明
标签
用法
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 RTGHT TOP BOTTOM root.mainloop()
效果
3.2 Frame
说明
在屏幕上创建一块矩形区域,多作为容器来布局窗体
用法
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) #left 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) #right 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()
效果
3.3 Entry
说明
创建单行文本框
用法
创建: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") e.pack() root.mainloop()
效果
3.4 Text
说明
向该空间内输入文本
用法
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') t.pack() 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() t.pack() 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) lb.pack() 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()
效果
相关文章推荐
- python CGI 编程环境搭建
- python 模块之platform模块(基本了解)
- python从SUMO中获取车辆平均行驶时间
- 关于Python中的yield
- Windows下Python pip的安装
- python 模块之os.path模块
- Python-排序
- Python之美[从菜鸟到高手]--生成器之全景分析
- [python]函数
- LeetCode解题报告-- Count and Say
- python与BeautifulSouop计算SUMO仿真的到达速率
- 【python】FTP客户端
- python一个进程——多线程threading的实现
- python调用API
- python 怎么模拟加header(如User-Agent、Content-Type等等)
- python入门--切片,迭代,列表生成
- python学习之路之案例0(实现登录功能,登录错误次数超过3次,自动退出登录)
- Python yield 使用浅析
- python 之html的headers提取操作
- Python xrange与range的区别