- 100
- 0
- 约4.78万字
- 约 43页
- 2020-10-25 发布于北京
- 举报
第9章 GUI编程
Python除了前面章节提到的功能外,还具有图形用户界面的开发功能。Python语言GUI编程工具很多,如wxPython、Jython、tkinter、IronPython、PyGObject、PyQt、PySide、Turtle等,也可以利用有关插件和其他语言混合编程以便充分利用其他语言的GUI开发工具。本章通过案例详细介绍了wxPython和tkinter两种模块的GUI编程方法。
9.1 wxPython
在前面章节中,我们编写的程序都是基于文本用户界面(Text-based User Interface, TUI)程序。本章主要讲图形用户界面(Graphical user Interface, GUI,读作“gooie”)编程,它通过可输入数据的对话框、有触发动作按钮之类的可视化对象组成视窗与用户交互。这些可视化对象(称作控件)负责处理鼠标单击这样的事件。由于事件处理是GUI编程的核心,所以GUI编程也称作事件驱动的编程。
常用GUI工具集有功能强大的wxPython、tkinter、PyGObject、PyQt、PySide等,或者也可以利用有关插件和其他语言混合编程以便充分利用其他语言的GUI界面,这里我们以扩展库wxPython和标准库tkinter为例来介绍Python的GUI应用开发。
wxPython是Python编程语言的一个GUI工具箱。他使得Python程序员能够轻松的创建具有健壮、功能强大的图形用户界面的程序。
wxPython也是一款开源软件,并且具有非常优秀的跨平台能力,同一个程序可以不经修改地在多种平台上运行。现今支持的平台有:32/64位微软Windows操作系统、大多数Unix或类Linux系统、苹果Mac OS X。
wxPython是开源软件,任何人都可以免费地使用它并且可以查看和修改它的源代码,或者贡献补丁,增加功能。
wxPython程序开发的五个基本步骤:
导入wxPython模块
子类化wxPython应用程序类
定义一个应用程序的初始化方法
创建一个应用程序类的实例
进入这个应用程序的主事件循环
9.1.1 Frame窗体
Frame窗体是所有窗体的父类,是包含标题栏、菜单、按钮等其他控件的容器,运行之后可移动、缩放。
下面代码能创建简易的窗体。
实例9-1 创建第一个wxPython GUI窗体。创建窗体可以通过鼠标移动、缩放。
代码如下:
# -*- coding: UTF-8 -*-#
import wx #导入wx包
app=wx.App() #初始化应用程序,创建一个实例
frame=wx.Frame(None) #创建一个窗体
frame.Show() #显示窗体
app.MainLoop() #请求实例开始处理事件
很简单,我们运用wxPython生成第一个窗体。如图9-1所示。
图9-1 最简单窗体
当然,这是个默认的窗体,没有标题、大小、位置、名称和标识符等属性。下面代码设置窗体的标准、大小等属性。如图9-2所示。
# -*- coding: UTF-8 -*-#
import wx #需要导入wx模块
class MyFrame(wx.Frame):
def __init__(self, superior):
wx.Frame.__init__(self, parent=superior, title=MyPython Frame, size=(320, 240))
if __name__ == __main__:
app = wx.App( ) #创建一个实例
frame = MyFrame(None)
frame.Show(True)
app.MainLoop( ) #请求实例开始处理事件
运行结果:
图9-2 wxPython窗体示例
事实上,创建GUI窗体时,需要从wx.Frame派生出子类,在派生类中调用基类构造函数进行必要的初始化,其构造函数格式为:
__init__(self,Window parent, int id=-1, String title=EmptyString, Point pos=DefaultPosition, Size size=DefaultSize, long style=DEFAULT_FRAME_STYLE, String name=FrameNameStr)
各参数含义如表9-1、表9-2所示。
表9-1 参数含义
参 数
含 义
parent
父窗体。该值为None时表
您可能关注的文档
- BIM机电建模(二级BIM建模师) 1 消防管道系统建模 4.1 消防管道系统建模 任务书.docx
- BIM机电建模(二级BIM建模师) 2 Revit软件安装 1.2 Revit2016安装教程图文解说.docx
- BIM机电建模(二级BIM建模师) 2 空调冷媒管道系统建模 4.2空调冷冻水系统建模 任务书.docx
- BIM计量与计价 土建算量表格输入 智能检查.docx
- BIM技术概论 习题库 标高轴网.docx
- BIM技术概论 习题库 屋顶楼板.docx
- BIM技术应用 5.幕墙的绘制 幕墙绘制教案.docx
- BIM建模应用技术 BIM微课视频 REVIT三维场景布置.docx
- BIM建模应用技术 BIM微课视频 分析模型和MEP系统的基本技能.docx
- BIM深化设计 碰撞分析报告 碰撞检测报告.docx
最近下载
- 明代宗教信仰与思想控制.docx VIP
- 江苏省南通市2024-2025学年高二上学期期末学业质量监测语文试卷(含答案).pdf VIP
- 国就有成人演出的电影了?想看就要冒生命危险.pdf VIP
- 综合素质练习题及答案.doc VIP
- 2020-2021学年北京高三化学二轮复习 反应原理型简答题(突破二卷)(word版 含答案).docx VIP
- 电力拖动控制线路安装与检修(白银矿冶职业技术学院)知到智慧树答案.docx VIP
- 煤炭巷道掘砌工(高级工)资格考试题库(全真题库).docx VIP
- 影像叙事中情感共鸣生成机制.docx VIP
- 同轴二级圆柱齿轮减速器的设计(硬齿面).doc VIP
- 基于GPU多线程多通道图像高速重构方法、设备及介质.pdf VIP
原创力文档

文档评论(0)