栖息于阿拉德大陆上空的海洋——天空之海的巨大生物。据说它的体积甚至超过周边的大陆,每次它飞行的时候,就像看到一块巨大的陆地在移动。有传闻说,天帷巨兽每300年会穿过天空之海降落到大陆上休息。
在天帷巨兽的背部形成的岛屿上,残留着大量不知年代的文明遗迹。探索家莱斯利•贝伊兰斯发现之后,被深深的吸引。从那以后,他开始乘坐天帷巨兽到处周游世界,并且还在巨兽的背上创建了GBK教。
常用的GUI库
- Tkinter tkinter(Tk interface) 是 Python 的标准 GUI 库,支持跨平台的 GUI 程序开发. tkinter 适合小型的 GUI 程序编写,也特别适合初学者学习 GUI 编程. 本章以 tkinter 为核心来进行学习
- wxPythonwxPython 是比较流行的 GUI 库,适合大型应用程序开发,功能强于 tkinter,整体设计 框架类似于 MFC(Microsoft Foundation Classes 微软基础类库)
- PyQT Qt 是一种开源的 GUI 库,适合大型 GUI 程序开发,PyQT 是 Qt 工具包标准的 Python 实现. 我们也可以使用 Qt Desginer 界面设计器快速开发 GUI 应用程序
tkinter 模块
本章中,涉及大量的 API 讲解。学习 API 最好的来源就是官方提供的文档:tkinter 官网 传送门tkinter 中文文档 传送门tkinter 菜鸟教程 传送门
程序开发步骤
(1)) 创建应用程序主窗口对象(也称:根窗口)
ps: 我们可以通过 from tkinter import * 来手动导入所有 tkinter 所有包, 也可以先不导包, 然后在提示需要导包导包时 Alt+ 回车 后选择第一条提示自动导包即可。
(2) 在主窗口中,添加各种可视化组件
(3) 通过几何布局管理器,管理组件的大小和位置
(4) 事件处理(通过绑定事件处理程序,响应用户操作所触发的事件)
第一个 GUI 程序
基于以上步骤, 来实现一个简单的抽奖应用。
步骤:
- 通过类 Tk 的无参构造函数
- 在主窗口中,添加各种可视化组件
- 通过几何布局管理器,管理组件的大小和位置
- 通过绑定事件处理程序,响应用户操作所触发的事件
- 调用组件方法, 进入事件循环
实操代码:
结果展示:
tkinter 主窗口
通过 geometry(‘wxh±x±y’)进行设置。w 为宽度,h 为高度+x 表示距屏幕左边的距离;-x 表示距屏幕右边的距离;+y 表示距屏幕上边的距离;-y 表示距屏幕下边的距离。
GUI 编程整体描述
tkinter 中 GUI 组件的继承关系图图下图所示:
这些类的基本作用如下:
- Misc 和 Wm:Tkinter 的 GUI 组件有两个根父类,它们都直接继承了 object 类:Misc:它是所有组件的根父类: Wm:它主要提供了一些与窗口管理器通信的功能函数
- TkMisc 和 Wm 派生出子类 Tk,它代表应用程序的主窗口. 一般应用程序都需要直接或间接 使用 Tk
- Pack、Place、GridPack、Place、Grid 是布局管理器. 布局管理器管理组件的大小、位置通过布局管理器可以将容器中的组件实现合理的排布
- BaseWidgetBaseWidget 是所有组件的父类
- WidgetWidget 是所有组件类的父类. Widget 一共有四个父类:BaseWidget、Pack、Grid、Place. 这意味着,所有 GUI 组件同时具备这四个父类的属性和方法
常用组件汇总列表
GUI 应用程序类的经典写法
通过类 Application 组织整个 GUI 程序,类 Application 继承了 Frame 及通过继承拥有 了父类的特性. 通过构造函数__init__()初始化窗口中的对象,通过 createWidgets()方法创建窗口中的对象.Frame 框架是一个 tkinter 组件,表示一个矩形的区域. Frame 一般作为容器使用,可以放置其他组件,从而实现复杂的布局。
实操代码:
结果展示
在格兰之森时, 冒险家了不起遭遇到了燃烧的森林(烈焰格拉卡)和变成僵尸的精灵(暗黑雷鸣废墟)等异变. 在前往天 空之城攻略怪物时, 遇到了GSC , 在机缘巧合下帮助莉莉安和卡卡坤互相了解对方的心意, 在平时在冒险家酒馆时还结实了老板索菲亚. 击败领主塞格哈特之后,在赛格哈特驻地的正上方,天帷巨兽正好飞过,而乘坐飞艇成功逃生的红发少女却因为飞艇被破坏,被迫迫降在天空之城,受伤昏迷,随后被冒险家了不起带回赫顿玛尔的医疗所负责救治。
在苏醒后, 红发少女介绍其自己的来历: 她叫奥菲利亚, 是GBK教的一名成员. 由于所属组织的很多人疑似收到了控制, 导致性情大变. 开始残害同胞. 在知道了不起身份之后, 也请求了不起前去帮忙调查下情况. 于是在修理匠森纳斯的帮助下, 修复飞艇之后的了不起便和奥菲利亚以及鬼剑士GSC一起去调查事件的起因了...