PythonGUI之tkinter窗口视窗教程Word下载.docx
《PythonGUI之tkinter窗口视窗教程Word下载.docx》由会员分享,可在线阅读,更多相关《PythonGUI之tkinter窗口视窗教程Word下载.docx(68页珍藏版)》请在冰豆网上搜索。
10.
Menu窗口部件
11.
Frame
窗口部件
12.
messageBox窗口部件
13.窗口部件三种放置方式pack/grid/place
14.综合练习,用户登录窗口例子
15.其他部件后续再补充...
一、Tkinter是什么
Tkinter是使用python进行窗口视窗设计的模块。
Tkinter模块("
Tk接口"
)是Python的标准TkGUI工具包的接口。
作为
python特定的GUI界面,是一个图像的窗口,tkinter是python自带的,可以编辑的GUI界面,我们可以用GUI实现很多直观的功能,比如想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没用用户体验的。
所有开发一个图像化的小窗口,就是必要的。
对于稍有GUI编程经验的人来说,Python的Tkinter界面库是非常简单的。
python的GUI库非常多,选择Tkinter,一是最为简单,二是自带库,不需下载安装,随时使用,三则是从需求出发,Python作为一种脚本语言,一种胶水语言,一般不会用它来开发复杂的桌面应用,它并不具备这方面的优势,使用Python,可以把它作为一个灵活的工具,而不是作为主要开发语言,那么在工作中,需要制作一个小工具,肯定是需要有界面的,不仅自己用,也能分享别人使用,在这种需求下,Tkinter是足够胜任的!
这篇文章主要做一个简单概述和实践编程,对于从没有接触过GUI的新手,在脑中树立一个基本的界面编程概念,同时自己也能学会如何简单的实现一些小的图形窗口功能。
对于Tkinter编程,可以用两个比喻来理解:
第一个,作画。
我们都见过美术生写生的情景,先支一个画架,放上画板,蒙上画布,构思内容,用铅笔画草图,组织结构和比例,调色板调色,最后画笔勾勒。
相应的,对应到tkinter编程,那么我们的显示屏就是支起来的画架,根窗体就是画板,在tkinter中则是Toplevel,画布就是tkinter中的容器(Frame),画板上可以放很多张画布(Convas),tkinter中的容器中也可以放很多个容器,绘画中的构图布局则是tkinter中的布局管理器(几何管理器),绘画的内容就是tkinter中的一个个小组件,一幅画由许多元素构成,而我们的GUI界面,就是有一个个组件拼装起来的,它们就是widget。
第二个,我们小时候都玩过积木,只要发挥创意,相同的积木可以堆出各种造型。
tkinter的组件也可以看做一个个积木,形状或许不同,其本质都是一样的,就是一个积木,不管它长什么样子,它始终就是积木!
所以这些小组件都有许多共性,另外,个人认为,学习界面编程,最重要的不是一开始学习每个积木的样子,不是学习每个组件怎么用,而是这些组件该怎么放。
初始学习中,怎么放远远比怎么用重要的多。
网上有大量的文章资料,基本全是介绍组件怎么用的,对于怎么放,也就是tkinter中的布局管理器,都是一笔带过,这对初学者有点本末倒置,或许绝大部分是转载的原因吧,极少是自己真正写的。
组件怎么用不是最迫切的,用到的时候再去了解也不迟,边用边学反而更好。
因此我将专门写一章,详细介绍布局管理器的使用。
Tkinter又称“Tk接口”,是一个轻量级的跨平台图形用户界面(GUI)开发工具,是Tk图形用户界面工具包标准的Python接口,可以运行在大多数Unix平台、Windows、和Macintosh系统。
Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
wxPython是Python语言的一套优秀的GUI图形库,可以帮助程序员轻松创建功能强悍的图形用户界面的程序。
PyQt是一个创建GUI应用程序的工具包。
它是Python编程语言和Qt库的成功融合。
Qt库是目前最强大的库之一。
PyQt是由PhilThompson开发,向Python程序员提供使用完整Qt应用程序接口的方法。
因此,可以使用Python做任何C++能做的事,有没有很神奇。
Flexx是用于创建图形用户界面(GUI)的纯Python工具箱,该工具箱使用Web技术进行渲染。
作为跨平台的Python小工具,用户可以使用Flexx创建桌面应用程序和web应用程序,同时可以将程序导出到独立的HTML文档中。
二、Tkinter控件详细介绍
1.Tkinter模块元素简要说明
2.常用窗口部件及简要说明:
Tkinter支持16个核心的窗口部件,这个16个核心窗口部件类简要描述如下:
Button:
一个简单的按钮,用来执行一个命令或别的操作。
Canvas:
组织图形。
这个部件可以用来绘制图表和图,创建图形编辑器,实现定制窗口部件。
Checkbutton:
代表一个变量,它有两个不同的值。
点击这个按钮将会在这两个值间切换。
Entry:
文本输入域。
Frame:
一个容器窗口部件。
帧可以有边框和背景,当创建一个应用程序或dialog(对话)版面时,帧被用来组织其它的窗口部件。
Label:
显示一个文本或图象。
Listbox:
显示供选方案的一个列表。
listbox能够被配置来得到radiobutton或checklist的行为。
Menu:
菜单条。
用来实现下拉和弹出式菜单。
Menubutton:
菜单按钮。
用来实现下拉式菜单。
Message:
显示一文本。
类似label窗口部件,但是能够自动地调整文本到给定的宽度或比率。
Radiobutton:
代表一个变量,它可以有多个值中的一个。
点击它将为这个变量设置值,并且清除与这同一变量相关的其它radiobutton。
Scale:
允许你通过滑块来设置一数字值。
Scrollbar:
为配合使用canvas,entry,listbox,andtext窗口部件的标准滚动条。
Text:
格式化文本显示。
允许你用不同的样式和属性来显示和编辑文本。
同时支持内嵌图象和窗口。
Toplevel:
一个容器窗口部件,作为一个单独的、最上面的窗口显示。
messageBox:
消息框,用于显示你应用程序的消息框。
(Python2中为tkMessagebox)
注意在Tkinter中窗口部件类没有分级;
所有的窗口部件类在树中都是兄弟关系。
所有这些窗口部件提供了Misc和几何管理方法、配置管理方法和部件自己定义的另外的方法。
此外,Toplevel类也提供窗口管理接口。
这意味一个典型的窗口部件类提供了大约150种方法。
三、动手实践学习
1.创建主窗口及Label部件(标签)创建使用
1)简要说明:
我们要学习使用上面提到的这些控件首先要创建一个主窗口,就像作画一样,先要架好架子和画板,然后才能在上面放画纸和各种绘画元素,创建好主窗口才能在上面放置各种控件元素。
而创建过程是很简单的,基本流程如下:
2)示例代码:
例1、基本流程:
import
tkinterastk
#使用Tkinter前需要先导入
window
=
tk.Tk()#第1步,实例化object,建立窗口window
('
MyWindow'
)
#第2步,给窗口的可视化起名字
try('
500x300'
)
#第3步,设定窗口的大小(长*宽)
这里的乘是小x
l
tk.Label(window,text='
你好!
thisisTkinter'
bg='
green'
font=('
Arial'
12),width=30,height=2)#第4步,在图形界面上设定标签
#说明:
bg为背景,font为字体,width为长,height为高,这里的长和高是字符的长和高,比如height=2,就是标签有2个字符这么高
l.pack()
#
#第5步,放置标签,Label内容content区域放置位置,自动调节尺寸
#放置lable的方法有:
1)l.pack();
2)l.place();
oop()#第6步,主窗口循环显示
#注意,loop因为是循环的意思,oop就会让window不断的刷新,如果没有mainloop,就是一个静态的window,传入进去的值就不会有循环,mainloop就相当于一个很大的while循环,有个while,每点击一次就会更新一次,所以我们必须要有循环
#所有的窗口文件都必须有类似的mainloop函数,mainloop是窗口文件的关键的关键。
3)测试效果:
基本流程:
1)导入tkinter模块:
importtkinter2)创建Tkinter主窗口:
root=tk.Tk()
3)在主窗口中创建控件:
label1=tk.Label(root,text=”我的窗口”)
4)放置控件:
可选pack()、place()、grid()等。
()5)进入主循环:
mainloop(),只有执行mainloop()方法才能运行.oop()
Label使用语法
widget=Radiobutton(master,parameter=value,...)
master:
文本框控件的父容器
parameter:
文本框的参数
value:
参数对应的值
各参数之间以逗号分隔。
参数说明:
Text标签文字,可以在标签上添加文字,如text=”我的祖国”
Relief标签样式,设置控件3D效果,可选的有:
FLAT、SUNKEN、RAISED、GROOVE、RIDGE。
bg标签文字背景颜色,dg='
背景颜色'
fg标签文字前景色,fg='
前景颜色'
bd标签文字边框宽度,bd=‘边框宽度’。
边框宽度显示需要配合边框样式才能凸显。
font标签文字字体设置,font=('
字体'
字号,'
bold/italic/underline/overstrike'
)
justify标签文字对齐方式,可选项包括LEFT,RIGHT,CENTER
underline下划线。
取值就是带下划线的字符串索引,为0时,第一个字符带下划线,为1时,第两个字符带下划线,以此类推
wraplength按钮达到限制的屏幕单元后换行显示
height字体高度,height='
高度'
。
和relief结合使用才会凸显效果。
wideth字体宽度,wideth='
宽度'
image标签插入图片,插入的图片必须有PhotImage转换格式后才能插入,并且转换的图片格式必须是.gif格式
代码示例:
fromtkinterimport*
'
NWNNE
WCE
SWSSE
classLabels:
def__init__(self):
=Tk()
.title("
标签"
)#设置窗口标题
.geometry("
600x600"
)#设置窗口大小
文本框样式'
#标签文字,可以在标签上添加文字
_text