由于版本更迭,本篇所有示例及截图均已更新,最新演示版本为 EasyGUI 0.98 & Python 3.7。
本次修订日期:2018-7-3
注意:由于模块、Python 版本或系统环境的差异,书中涉及的演示截图与实际环境可能会有出入,但函数的用法及行为均是一致。
0. 安装 EasyGUI
官网:https://github.com/robertlugg/easygui
使用 pip 进行安装:
1. 什么是 EasyGUI?
EasyGUI 是 Python 中一个非常简单的 GUI 编程模块,不同于其他的 GUI 生成器,它不是事件驱动的。相反,所有的 GUI 交互都是通过简地函数调用就可以实现。
EasyGUI 为用户提供了简单的 GUI 交互接口,不需要程序员知道任何有关 tkinter,框架,部件,回调或 lambda 的任何细节。
EasyGUI 可以很好地兼容 Python 2 和 3,并且不存在任何依赖关系。
EasyGUI 是运行在 Tkinter 上并拥有自身的事件循环,而 IDLE 也是 Tkinter 写的一个应用程序并也拥有自身的事件循环。因此当两者同时运行的时候,有可能会发生冲突,且带来不可预测的结果。因此如果你发现你的 EasyGUI 程序有这样的问题,请尝试在 IDLE 外去运行你的程序。
2. 一个简单的例子
在 EasyGui 中,所有的 GUI 互动均是通过简单的函数调用,下边一个简单的例子告诉你 EasyGui 确实很 Easy!
- import easygui as g
- import sys
- while 1:
- g.msgbox("嗨,欢迎进入第一个界面小游戏^_^")
- msg ="请问你希望在鱼C工作室学习到什么知识呢?"
- title = "小游戏互动"
- choices = ["谈恋爱", "编程", "OOXX", "琴棋书画"]
- choice = g.choicebox(msg, title, choices)
- # 注意,msgbox的参数是一个字符串
- # 如果用户选择Cancel,该函数返回None
- g.msgbox("你的选择是: " + str(choice), "结果")
- msg = "你希望重新开始小游戏吗?"
- title = "请选择"
- # 弹出一个Continue/Cancel对话框
- if g.ccbox(msg, title):
- pass # 如果用户选择Continue
- else:
- sys.exit(0) # 如果用户选择Cancel
复制代码
3. EasyGUI 的各种功能演示
要运行 EasyGUI 的演示程序,在命令行调用 EasyGUI 是这样的:
- python easygui.py
复制代码
或者可以从 IDE(例如 IDLE, PythonWin, Wing, 等等)上调用:
- >>> import easygui
- >>> easygui.egdemo()
复制代码
成功调用后将可以尝试 EasyGUI 拥有的各种功能,并将结果打印至控制台。
4. 导入 EasyGUI
为了使用 EasyGUI 这个模块,你应该先导入它。
最简单的导入语句是:
- import easygui