Python研究学习--14--图形用户界面(上)

版权声明:本文为博主原创文章,转载本站文章请注明作者和出处,请勿用于任何商业用途。 https://blog.csdn.net/wutianxu123/article/details/82528705

13.1 标准GUI理论基础

使用模块及语法:

import Tkinter             #是默认的Python库

让 GUI 程序启动和运行起来需要以下5个主要步骤:
1、导入Tkinter模块(或from Tkinter import *)。
2、创建一个顶层窗口对象,用于容纳整个GUI应用。
3、在顶层窗口对象之上(或者“其中”)构建所有的GUI组件(及其功能)。
4、通过底层的应用代码将这些GUI组件连接起来。
5、进入主事件循环。

GUI介绍:
顶层窗口对象: 下方基础界面,包含小窗口对象。是应用中独立显示的部分
根窗口: GUI程序可以有多个顶层窗口,但只能有一个根窗口。Tkinter.Tk()
控件: 按钮、文本框等
事件: 按下按钮、鼠标移动、键盘输入等
回调: GUI对用户事件(按下按钮等)的响应称为回调
事件驱动处理: GUI应用从开始到结束就是通过整套事件体系来驱动的
布局管理器: 有Placer、Packer、Grid三种。主要是第二种
——-Placer: 位置。开发者提供大小和位置,管理器将其自动摆好。要对所有控件进行这些操作
——-Packer: 包装。把控件添加到指定的父控件中,对之后的控件,会寻找剩余空间进行填充
——-Grid: 网格。基于网络坐标,使用Grid来指定GUI控件的放置

GUI代码主循环:

Tkinter.mainloop()

当所有控件摆放好后,可以让应用进入无限主循环中。一般这是程序运行的最后一段代码。当进入主循环后,GUI就从这里开始接管程序的执行。所有其他行为都会通过回调来处理,甚至包括退出应用。当选择File菜单并单击Exit菜单选项,或者直接关闭窗口时,就会调用一个回调函数来结束这个GUI应用。

偏函数:
偏函数就是把一个函数的某些参数给固定住(写死),形成一个新的函数,当实现指定任务时调用这个新函数会更简单。

Tkinter组件:

方法 解释
Button 按钮控件;在程序中显示按钮
Canvas 画布控件;显示图形元素如线条或文本
Checkbutton 多选框控件;用于在程序中提供多项选择框
Entry 输入控件;用于显示简单的文本内容
Frame 框架控件;在屏幕上显示一个矩形区域,多用来作为容器
Label 标签控件;可以显示文本和位图
LabelFrame 是一个简单的容器控件。常用与复杂的窗口布局
Listbox 列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户
Menu 菜单控件;显示菜单栏,下拉菜单和弹出菜单
Menubutton 菜单按钮控件,由于显示菜单项
Message 消息控件;用来显示多行文本,与label比较类似
PanedWindow 是一个窗口布局管理的插件,可以包含一个或者多个子控件
Radiobutton 单选按钮控件;显示一个单选的按钮状态
Scale 范围控件;显示一个数值刻度,为输出限定范围的数字区间
Scrollbar 滚动条控件,当内容超过可视化区域时使用,如列表框
Spinbox 输入控件;与Entry类似,但是可以指定输入范围值
Text 文本控件;用于显示多行文本
Toplevel 容器控件;用来提供一个单独的对话框,和Frame比较类似

标准属性:

方法 解释
Dimension 控件大小
Color 控件颜色
Font 控件字体
Relief 控件样式
Bitmap 位图
Cursor 光标
resizable 设置窗口是否可以变化长/宽。默认为True(可变)
background(bg) 当控件显示时,给出的正常颜色
borderwidth(bd) 非负值显示画控件外围3D边界的宽度
foreground(fg) 指定控件的前景色
highlightbackground 指出经过没有输入焦点的控件加亮区域颜色
highlightcolor 指出经过没有输入焦点的控件周围长方区域加亮颜色
highlightthickness 非负值指出有输入焦点的控件周围加亮方形区域的宽度
takefocus 决定窗口在键盘遍历时是否接收焦点
width 整数设置控件宽度,控件字体的平局字符数
activebackground 指定画活动元素的背景颜色
activeforeground 指定画活动元素时的前景颜色
anchor 指出控件信息(比如文本或者位图)如何在控件中显示
command 指定一个与控件关联的命令,在鼠标离开控件之时被调用
disabledforeground 指定绘画元素时的前景色
height 指定窗口的高度
image 指定所在控件中显示的图像
justify 在多行文本时设置不同行之间是如何排列的
padx 指定一个非负值设置控件X方向需要的边距
pady 指定一个非负值设置控件Y方向需要的边距
selectbackground 指定显示选中项时的背景颜色
selectborderwidth 指定一个非负值,给出选中项的三维边界宽度
selectforeground 指定显示选中项的前景颜色
text 指定控件中显示的文本
textvariable 指定一个变量名字,变量值被转变为字符串在控件上显示
underline 指定控件中加入下划线字符的整数索引
wraplength 指定行的最大字符数超过最大字符数则换行
xscrollcommand 水平滚动框进行信息交流的命令前缀
yscrollcommand 垂直滚动框进行信息交流的命令前缀
bind 事件绑定。一个事件执行则另一个事件执行
config 配置。可以任意命令

13.2 Python GUI编程各种实现对比

PyQt
是一个创建GUI应用程序的工具包。它是python编程语言和Qt库的成功融合,Qt库是目前最强大的库之一。PyQt实现了一个Python模块集。它有超过440个类,将近6000种函数和方法。它是一个多平台的工具包,可以运行在所有主要操作系统上,包括UNIX,Windows和Mac。 PyQt采用双许可证,开发人员可以选择GPL和商业许可。在此之前,GPL的版本只能用在Unix上,从PyQt的版本4开始,GPL许可证可用于所有支持的平台。

wxPython
wxPython是Python语言的一套优秀的GUI图形库,允许Python程序员很方便的创建完整的、功能键全的GUI用户界面。 wxPython是作为优秀的跨平台GUI库wxWidgets的Python封装和Python模块的方式提供给用户的。就如同Python和wxWidgets一样,wxPython也是一款开源软件,并且具有非常优秀的跨平台能力,能够支持运行在32/64位windows、绝大多数的Unix或类Unix系统、Macintosh OS X下。

Tkinter
Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口。Tk是一个轻量级的跨平台图形用户界面开发工具。Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里。Tkinter由一定数量的模块组成。Tkinter位于一个名为_tkinter的二进制模块中。Tkinter包含了对Tk的低级接口模块,低级接口并不会被应用级程序员直接使用,通常是一个共享库(或DLL),但是在一些情况下它也被Python解释器静态链接。Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

Pyside
PySide是跨平台的应用程式框架Qt的Python绑定版本。最初由BoostC++库实现,后来迁移到Shiboken。在2009年8月,PySide首次发布。提供和PyQt类似的功能,并相容API。

PyGTK
PyGTK让你用Python轻松创建具有图形用户界面的程序。底层的GTK+提供了各式的可视元素和功能,如果需要,你能开发在GNOME桌面系统运行的功能完整的软件。PyGTK真正具有跨平台性,它能不加修改的稳定运行于各种操作系统之上,如Linux、Windows、MacOS等。除了简单易用和快速的原型开发能力外,PyGTK还有一流的处理本地化语言的独特功能。

猜你喜欢

转载自blog.csdn.net/wutianxu123/article/details/82528705
今日推荐