找传奇、传世资源到传世资源站!

wxPython实战(中文版).pdf(共565页)

8.5玩家评分(1人评分)
下载后可评
介绍 评论 失效链接反馈

wxPython入门,介绍如何创建wxPython程序。wxPython实战(中文版).pdf(共565页) Python-第1张from clipboard wxPython实战(中文版).pdf(共565页) Python-第3张
Part1 wxPython入门 191. 欢迎来到wxPython 191.1 开始wxPython 201.2 创建最小的空的wxPython程序 201.2.1 导入wxPython 211.2.2 使用应用程序和框架工作 22子类化wxPython application类 23定义一个应用程序的初始化方法 23创建一个应用程序实例并进入它的主事件循环 231.3 扩展这个最小的空的wxPython程序 241.4 创建最终的hello.py程序 262、给你的wxPython程序一个稳固的基础 282.1 关于所要求的对象我们需要知道些什么? 282.2 如何创建和使用一个应用程序对象? 292.2.1 创建一个wx.App的子类 29何时省略wx.App的子类 302.2.2 理解应用程序对象的生命周期 312.3 如何定向wxPython程序的输出? 312.3.1 重定向输出 322.3.2 修改默认的重定向行为 342.4 如何关闭wxPython应用程序? 342.4.1 管理正常的关闭 352.4.2 管理紧急关闭 352.5 如何创建和使用顶级窗口对象? 362.5.1 使用wx.Frame 362 / 5652.5.2 使用wxPython的ID 37明确地选择ID号 38使用全局性的NewID()函数 382.5.3 使用wx.Size和wx.Point 382.5.4 使用wx.Frame的样式 392.6 如何为一个框架增加对象和子窗口? 412.6.1 给框架增加窗口部件 422.6.2 给框架增加菜单栏、工具栏和状态栏。 442.7 如何使用一般的对话框? 45消息对话框 46文本输入对话框 47从一个列表中选择 472.8 一些最常见的错误现象及解决方法? 482.9 总结 493、在事件驱动环境中工作 513.1 要理解事件,我们需要知道哪些术语? 513.2 什么是事件驱动编程? 523.2.1 编写事件处理器 543.2.2 设计事件驱动程序 553.2.3 事件触发 553.3 如何将事件绑定到处理器? 563.3.1 使用wx.EvtHandler的方法工作 573.4 wxPython是如何处理事件的? 613.4.1 理解事件处理过程 62第一步,创建事件 64第二步,确定事件对象是否被允许处理事件。 64第三步 定位绑定器对象 653 / 565第四步 决定是否继续处理 66第五步 决定是否展开 673.4.2 使用Skip()方法 683.5 在应用程序对象中还包含哪些其它的属性? 703.6 如何创建自己的事件? 713.6.1 为一个定制的窗口部件定义一个定制的事件。 71创建自定义事件的步骤: 713.7 总结 754、用PyCrust使得wxPython更易处理 764.1 如何与wxPython程序交互? 76PyCrust配置了标准的Python shell 774.2 PyCrust的有用特性是什么? 794.2.1 自动完成 804.2.2 调用提示和参数默认 804.2.3 语法高亮 814.2.4 Python 帮助 814.2.5 命令重调用 824.2.6 剪切和粘贴 834.2.7 标准shell环境 844.2.8 动态更新 854.3 PyCrust notebook的标签是干什么的? 874.3.1 Namespace标签 874.3.2 Display标签 894.3.3 Calltip(调用提示)标签 894.3.4 Session标签 904.3.5 Dispatcher 标签 904.4 如何将PyCrust应用于wxPython应用程序。 924 / 5654.5 在Py包中还有其它什么? 964.5.1 使用GUI程序工作 974.5.2 使用支持模块工作 97buffer模块 98crust 模块 100dispatcher模块 100editor模块 102filling模块 102interpreter模块 103introspect模块 103shell模块 1034.6 如何在wxPython中使用Py包中的模块? 1044.7 本章小结 1085、创建你的蓝图 1095.1 重构如何帮我改进我的代码? 1095.1.1 一个重构的例子 1105.1.2 开始重构 1135.1.3 进一步重构 1145.2 如何保持模型(Model)与视图(View)分离? 1185.2.1 MVC(Model-View-Controller)系统是什么? 1185.2.2 一个wxPython模型:PyGridTableBase 120PyGridTableBase的方法 122使用PyGridTableBase 123使用PyGridTableBase:特定于应用程序(不通用)的子类 123使用PyGridTableBase:一个通用的例子 125使用PyGridTableBase:一个独立的模型类 1275.2.3 自定义模型 1295 / 5655.3 如何对一个GUI程序进行单元测试? 1335.3.1 unittest模块 1345.3.2 一个unittest范例 1355.3.3 测试用户事件 1375.4 本章小结 1386、使用基本的建造部件 1406.1 在屏幕上绘画 1416.1.1 如何在屏幕上绘画 141使用设备上下文 141设备上下文的函数 1476.2 添加窗口装饰 1496.2.1 如何添加和更新一个状态栏 1496.2.2 如何添加菜单? 1526.3 得到标准信息 1566.3.1 如何使用标准文件对话框? 1566.3.2 如何使用标准的颜色选择器? 1606.4 给应用程序一个好看的外观 1616.4.1 如何布局窗口部件? 161创建一个sizer 161使用sizer 1626.4.2 如何建造一个关于(about)框? 1686.4.3 如何建造一个启动画面? 1706.5 本章小结 172Part 2 基本的wxPython 1747、使用基本的控件工作 1757.1 显示文本 1756 / 5657.1.1 如何显示静态文本? 175如何显示静态文本 176使用样式工作 178其它显示文本的技术 1787.1.2 如何让用户输入文本? 179如何创建文本输入控件 179使用单行文本控件样式 1807.1.3 不输入的情况下如何改变文本? 1817.1.4 如何创建一个多行或样式文本控件? 182使用多行或丰富文本样式 1847.1.5 如何创建一个字体? 1867.1.6 如果我们系统不支持丰富文本,那么我还能使用样式文本吗? 1877.1.7 如果我的文本控件不匹配我的字符串该怎么办? 1877.1.8 如何响应文本事件? 1887.2 使用按钮工作 1897.2.1 如何生成一个按钮? 1897.2.2 如何生成一个位图按钮? 1917.2.3 如何创建开关按钮(toggle button)? 1927.2.4 什么是通用按钮,我为什么要使用它? 1937.3 输入并显示数字 1967.3.1 如何生成一个滑块? 196如何使用滑块 197使用滑块样式工作 1987.3.2 如何得到那些灵巧的上下箭头按钮? 199如何创建一个微调控制器 1997.3.3 如何生成一个进度条? 2017.4 给用户以选择 2027.4.1 如何创建一个复选框? 2027 / 5657.4.2 如何创建一组单选按钮(radio button)? 204如何创建单选按钮 205使用单选框 2067.4.3 如何创建一个列表框? 209如何创建一个列表框 2097.4.4 如何合并复选框和列表框? 2127.4.5 如果我想要下拉形式的选择该怎么做? 2137.4.6 我能够将文本域与列表合并在一起吗? 2147.5 本章小结 2168、把窗口部件放入框架中 2188.1 框架的寿命 2188.1.1 如何创建一个框架? 218创建一个简单的框架 218创建框架的子类 2198.1.2 有些什么不同的框架样式? 2218.1.3 如何创建一个有额外样式信息的框架? 223添加额外样式信息 223添加额外样式信息的通用方法 2248.1.4 当关闭一个框架时都发生了什么? 225何时用户触发关闭过程 226什么时候系统触发关闭过程 2278.2 使用框架 2278.2.1 wx.Frame有那些方法和属性? 2278.2.2 如何查找框架的子窗口部件? 2308.2.3 如何创建一个带有滚动条的框架? 231如何创建滚动条 232指定滚动区域的尺寸 2338 / 565滚动条事件 2348.3 可选的框架类型 2358.3.1 如何创建一个MDI框架? 235图8.7 2368.3.2 什么是小型框架,我们为何要用它? 2388.3.3 如何创建一个非矩形的框架? 2398.3.4 如何拖动一个没有标题栏的框架? 2428.4 使用分割窗 2448.4.1 创建一个分割窗 2458.4.2 一个分割窗的例子 2468.4.3 改变分割的外观 2498.4.4 以程序的方式处理分割 2508.4.5 响应分割事件 2518.5 本章小结 2529、对话框 2539.1 使用模式对话框工作 2539.1.1 如何创建一个模式对话框? 2539.1.2 如何创建一个警告框? 255使用wx.MessageDialog类 256使用wx.MessageBox()函数 2579.1.3 如何从用户得到短的文本? 2589.1.4 如何用对话框显示选项列表? 2619.1.5 如何显示进度条? 2629.2 使用标准对话框 2649.2.1 如何使用文件选择对话框? 264选择一个文件 266选择一个目录 2679 / 5659.2.2 如何使用字体选择对话框? 2699.2.3 如何使用颜色对话框? 2719.2.4 如何使用户能够浏览图像? 2739.3 创建向导 2749.4 显示启动提示 2789.5 使用验证器(validator)来管理对话框中的数据 2799.5.1 如何使用验证器来确保正确的数据? 2799.5.2 如何使用验证器传递数据? 2839.5.3 如何在数据被键入时验证数据? 2879.6 本章小结 29010、创建和使用wxPython菜单 29210.1 创建菜单 29210.1.1 如何创建一个菜单栏并把它附加到一个框架? 29310.1.2 如何创建一个菜单并把它附加到菜单栏? 29310.1.3 如何给下拉菜单填加项目? 29610.1.4 如何响应一个菜单事件? 30010.2 使用菜单项工作 30110.2.1 如何在一个菜单中找到一个特定的菜单项? 30110.2.2 如何使一个菜单项有效或无效? 30410.2.3 如何将一个菜单项与一个快捷键关联起来? 306使用助记符快捷方式 308使用加速器快捷方式 30910.2.4 如何创建一个复选或单选开关菜单项? 31010.3 进一步构建菜单 31310.3.1 如何创建一个子菜单? 31310.3.2 如何创建弹出式菜单? 31510.3.3 如何创建自己个性的菜单? 31810 / 56510.4 菜单设计的适用性准则 32010.4.1 使菜单有均衡的长度 32110.4.2 创建合理的项目组 321菜单的顺序要遵循标准 321对通常使用的项目提供方便的访问 321使用有含义的菜单名称 321使用标准的快捷键 322反映出开关状态 32210.5 本章小结 32311 使用sizer放置窗口部件 32511.1 sizer是什么? 325下面是使用一个sizer的三个基本步骤: 32611.2 基本的sizer:grid sizer 32711.2.1 什么是grid sizer? 32711.2.2 如何对sizer添加或移除孩子? 330使用Add()方法 330使用insert()方法 331使用Prepend()方法 33111.2.3 sizer是如何管理它的孩子的尺寸和对齐的? 33211.2.4 能够为sizer或它的孩子指定一个最小的尺寸吗? 33511.2.5 sizer如何管理每个孩子的边框? 33711.3 使用其它类型的sizer 33911.3.1 什么是flex grid sizer? 33911.3.2 什么是grid bag sizer? 343在grid bag sizer上使用Add()方法 34511.3.3 什么是box sizer? 34711.3.4 什么是static box sizer? 35111 / 56511.4 一个现实中使用sizer的例子 35411.5 本章小结 35812 处理基本的图像 36012.1 使用图像工作 36012.1.1 如何载入图像? 361指定一个图像文件格式 363创建image(图像)对象 364创建bitmap(位图)对象 36412.1.2 我们能够对图像作些什么? 365设置图像的遮罩以指定一个透明的图像 367设置alpha值来指定一个透明的图像 36712.1.3 如何改变光标? 368创建自定义的光标 37012.2 处理设备上下文 37012.2.1 什么是设备上下文,以及如何创建它? 371基于屏幕的设备上下文 371非屏幕设备上下文 372缓冲设备上下文 37412.2.2 如何绘制到设备上下文? 37412.2.3 如何绘制图像到设备上下文? 381拷贝部分图像 382绘制一个位图 38212.2.4 如何绘制文本到设备上下文? 38512.3 图形处理 38612.3.1 如何使用画笔处理前景色? 38612.3.2 如何管理背景画刷? 389自定义样式 39012 / 56512.3.3 如何管理逻辑和物理设备坐标? 39012.3.4 预定义的颜色名有哪些? 39212.4 本章小结 392第三部分 高级wxPython 39413 建造列表控件并管理项目 39513.1 建造一个列表控件 39513.1.1 什么是图标模式? 39613.1.2 什么是小图标模式? 39713.1.3 什么是列表模式? 39913.1.4什么是报告模式 40113.1.5 如何创建一个列表控件? 40313.2 处理列表中的项目 40413.2.1 什么是一个图像列表以及如何将图像添加给它? 404创建一个图像列表 404添加及移去图像 405使用图像列表 40613.2.2 如何对一个列表添加或删除项目? 407增加一个新行 407增加列 407设置多列列表中的值 408项目属性 40813.3 响应用户 41013.3.1 如何响应用户在列表中的选择? 41013.3.2 如何响应用户在一个列的首部中的选择? 41113.4 编辑并排序列表控件 41713.4.1 如何编辑标签? 41713.4.2 如何对列表排序? 41813 / 565在创建的时候告诉列表去排序 419基于数据而非所显示的文本来排序 419使用mixin类进行列排序 41913.4.3 进一步了解列表控件 42313.5 创建一个虚列表控件 42613.6 本章小结 43014 网格(grid)控件 43214.1 创建你的网格 43214.1.1 如何创建一个简单的网格? 43314.1.2 如何使用网格表来创建一个网格? 43514.2 使用网格工作 43914.2.1 如何添加、删除行,列和单元格? 43914.2.2 如何处理一个网格的行和列的首部? 44014.2.3 如何管理网格元素的尺寸? 443改变单元格的尺寸 445设置默认尺寸 445设置标签的尺寸 44614.2.4 如何管理哪些单元格处于选择或可见状态? 44714.2.5 如何改变一个网格的单元格的颜色和字体? 44914.3 自定义描绘器和编辑器 45214.3.1 如何使用一个自定义的单元格描绘器? 452预定义的描绘器(renderer) 453创建一个自定义的描绘器 45414.3.2 如何编辑一个单元格? 45614.3.3 如何使用一个自定义的单元格编辑器? 457预定义的编辑器 457创建自定义的编辑器 45814 / 56514.4 捕获用户事件 46214.4.1 如何捕获用户的鼠标动作? 46214.4.2 如何捕获用户的键盘动作? 46514.5 本章小结 46615 树形控件(tree control) 46815.1 创建树形控件并添加项目 46815.1.1 如何添加一个root(根)元素? 48115.1.2 如何将更多的项目添加到树中? 48215.1.3 如何管理项目? 48215.2 树控件的显示样式 48315.3 对树形控件的元素排序 48515.4 控制与每项相关的图像 48615.5 使用编程的方式访问树。 48815.6 管理树中的选择 49015.7 控制项目的可见性 490虚树 491控制可见性 49415.8 使树控件可编辑 49515.9 响应树控件的其它的用户事件 49615.10 使用树列表控件 49715.11 本章小结 50116 在你的应用程序中加入HTML 50316.1 显示HTML 50316.1.1 如何在一个wxPython窗口中显示HTML? 50316.1.2 如何显示来自一个文件或URL的HTML? 50616.2 管理HTML窗口 50815 / 56516.2.1 如何响应用户在一个链接上的敲击? 50816.2.2 如何使用编程的方式改变一个HTML窗口? 50916.2.3 如何在窗口的标题栏中显示页面的标题? 51016.2.4 如何打印一个HTML页面? 512使用wx.html.HtmlEasyPrinting的实例 512设置字体 513输出预览 513打印 51316.3 拓展HTML窗口 51316.3.1 HTML解析器(parser)是如何工作的? 51416.3.2 如何增加对新标记的支持? 51516.3.3 如何支持其他的文件格式? 51916.3.4 如何得到一个性能更加完整的HTML控件? 52016.4 本章小结 521第17章 wxPython的打印构架 52217.1 如何用wxPython打印? 52217.1.1 理解打印输出的生命周期 52317.1.2 实战打印构架 52417.1.3 使用wx.Printout的方法工作 53117.2 如何显示打印对话框? 53217.2.1 创建一个打印对话框 532使用方法 533使用属性 53317.3 如何显示页面设置对话框? 53517.3.1 创建页面设置对话框 53517.3.2 使用页面设置属性工作 53617.4 如何打印? 53816 / 565第一步 按顺序得到你的所有数据 538第二步 创建一个wx.Printer实例 538第三步 使用wx.Printer的Print ()方法打印 53817.5 如何实现一个打印预览? 539第一步 创建预览实例 539第二步 创建预览框架 539第三步 初始化框架 54017.6 本章小结 54018 使用wxPython的其它功能 54118.1 放置对象到剪贴板上 54118.1.1 得到剪贴板中的数据 54118.1.2 处理剪贴板中的数据 54218.1.3 获得剪贴板中的文本数据 54318.1.4 实战剪贴板 54318.1.5 传递其它格式的数据 546步骤1 创建一个数据对象 547步骤2 创建释放源实例 547步骤3 执行拖动 548步骤4 处理释放 54818.2.1 实战拖动 54818.3 拖放到的目标 55118.3.1 使用你的释放到的目标 55118.3.2 实战释放 55318.4 传送自定义对象 55518.4.1 传送自定义的数据对象 55518.4.2 得到自定义对象 55618.4.3 以多种格式传送对象 55617 / 56518.5 使用wx.Timer来设置定时事件 55718.5.1 产生EVT_TIMER事件 557创建定时器 557绑定定时器 558启动和停止定时器 558确定当前定时器的状态 55918.5.2 学习定时器的其它用法 56018.6 创建一个多线程的wxPython应用程序 56018.6.1 使用全局函数wx.CallAfter() 56118.6.2 使用队列对象管理线程的通信 56418.6.3 开发你自已的解决方案 56418.7 本章小结 565

评论

发表评论必须先登陆, 您可以 登陆 或者 注册新账号 !


在线咨询: 问题反馈
客服QQ:174666394

有问题请留言,看到后及时答复