
作为Pyhon开发者,你迟早都会碰到图形用户界面(GUI)应用开发任务,这时候我们就需要一些界面库来帮助我们快速搭建界面,python的界面库很多,下面给大家介绍几种常用的界面库。
1.tkinter
Tkinter(也叫Tk接口)是Tk图形用户界面工具包标准的Python接口。Tk是一个轻量级的跨平台图形用户界面(GUI)开发工具。Tk和Tkinter可以运行在大多数的Unix平台、Windows、和Macintosh系统。
Tkinter 由一定数量的模块组成。Tkinter位于一个名为_tkinter(较早的版本名为tkinter)的二进制模块中 。Tkinter包含了对Tk的低 级接口模块,低级接口并不会被应用级程序员直接使用,通常是一个共享库(或DLL),但是在一些情况下它也被Python解释器静态链接。
2.pyqt
PyQt是Qt库的Python版本。PyQt3支持Qt1到Qt3。 PyQt4支持Qt4。它的首次发布也是在1998年,但是当时它叫 PyKDE,因为开始的时候SIP和PyQt没有分开。PyQt是用SIP写的。PyQt 提供 GPL版和商业版。
3.wxpython
wxPython 是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面。 wxPython 是作为优秀的跨平台 GUI 库 wxWidgets 的 Python 封装和 Python 模块的方式提供给用户的。
就如同Python和wxWidgets一样,wxPython也是一款开源软件,并且具有非常优秀的跨平台能力,能够运行在32位windows、绝大多数的Unix或类Unix系统、Macintosh OS X上。
4.Kivy
这是一个非常有趣的项目,基于OpenGL ES 2,支持Android和iOS平台的原生多点触摸,作为事件驱动的框架,Kivy非常适合游戏开发,非常适合处理从widgets到动画的任务。如果你想开发跨平台的图形应用,或者仅仅是需要一个强大的跨平台图形用户开发框架,Kivy都是不错的选择。
5.pygame
Pygame是跨平台Python模块,专为电子游戏设计,包含图像、声音。建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚。
这个库使用来写游戏的,但是你也可以用来写界面。
至于选择什么库是个人的喜好,强烈推荐Tkinter,下面给大家介绍一下:
先来看看Tkinter里面的基础控件:
接下来的代码讲解中你需要导入这些
1 2 3 |
|
在进行界面绘制之前你需要初始化Tk()
1 |
|
root便是你布局的根节点了,以后的布局都在它之上
1 2 3 4 |
|
设置一些窗口属性
1.Label
再来看看Label,它的属性很多
1 2 3 4 5 6 7 8 |
|
太多了,作用基本和名字一样,这里就不一一说了,你可以自己去试试,我说一下常用的属性
1 2 |
|
最后你需要调用pack()来把控件布置上去,你可以指定布局方式,可定义的属性也非常多。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
|
写完这些你运行程序发现还是无法出现界面,那是因为你还少了一句
1 |
|
加上这句话使程序进入消息循环,界面便会显示出来
学完了label之后学其他控件也就简单了很多,因为很多属性都是相同的
2.Button
1 2 |
|
之前说过的属性如果没有特殊情况就不再说了
3.Scale
1 2 3 4 5 |
|
和button不同的是command不再是点击事件了而是拖动事件 ,调用set()方法可以设置当前位置
4.NumbericUpDown
1 2 3 |
|
这是一个数字选择框 其中的字体配置需要使用config()方法来进行配置
5.ComboBox
1 2 3 4 |
|
这是一个下拉选择框,label前面要显示的字,editable控制是否可更改
调用insert()给下拉选择框添加选项
6.Menu
1 2 3 4 5 6 7 8 9 10 |
|
惨淡蓝需要所依附的节点配置menu才能起作用
调用add_cascade给menu添加一项选项
调用add_command则是给外层的选项添加一个子选项
7.Frame
1 2 3 4 |
|
frame相当于一个局部的窗体,可以用来装载其它控件
使用grid能让你更容易把握控件的位置,你可以指定它出现在几行几列,是否跨行跨列,跨几行等等。
8.Radiobutton
1 2 3 4 5 6 7 8 9 |
|
这是一个单选框,里面的属性之前也说过
9.ListBox
1 2 3 4 5 6 7 8 9 10 11 12 |
|
这是一个列表,注意这里按钮点击事件的写法是用lambda表达式写的。
10.Canvas
1 2 |
|
这是一个画板,你可以在上面画各种形状,上例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
|
11.CheckButton
1 2 3 4 5 |
|
这是一个多选框,oncalue代表被勾选时的值,offvalue代表不被勾选时的值。
12.LabelFrame
1 2 3 4 5 6 |
|
这是个容器框,padx,pady分别控制在x,y方向上的外边距。
python学习网,免费的在线学习python平台,欢迎关注!