1. turtle、tkinter 和 easygui 三个 Python 库的对比
适用情况的对比
库 | 定位 |
---|---|
turtle |
教育绘图工具:通过控制"海龟"移动绘制图形,适合初学者学习编程和几何概念 |
tkinter |
标准 GUI 工具包:构建完整的桌面应用程序,支持复杂控件和自定义布局 |
easygui |
简化对话框工具:快速创建简单弹窗和输入框,适合脚本工具快速交互 |
2. 窗口的对比
功能 | turtle | tkinter | easygui |
---|---|---|---|
创建主窗口 | turtle.Screen()---建立窗口(默认大小) | root = tk.Tk() | 自动创建 |
窗口标题 | screen.title("标题")---主窗口的标题(使用setup建立的无法设置) | root.title("标题") | 通过参数设置 |
窗口大小 | screen.setup(width, height) 或 turtle.setup(width, height) | root.geometry("400x300") | ❌ |
背景色 | screen.bgcolor("color") | canvas.config(bg="color") | ❌ |
事件循环 | turtle.mainloop() 或 turtle.done() | root.mainloop() | ❌ |
3. 绘图
功能 | turtle | tkinter (Canvas) | easygui |
---|---|---|---|
创建画笔/画布 | t = turtle.Turtle() |
canvas = tk.Canvas(root) |
❌ |
画直线 | t.forward(100) |
canvas.create_line(0,0,100,100) |
❌ |
画圆 | t.circle(50) |
canvas.create_oval(50,50,150,150) |
❌ |
画矩形 | 通过路径绘制 | canvas.create_rectangle(10,10,110,110) |
❌ |
填充颜色 | t.begin_fill() + t.end_fill() |
create_rectangle(..., fill="red") |
❌ |
画笔颜色 | t.pencolor("blue") |
create_line(..., fill="blue") |
❌ |
清空画布 | t.clear() |
canvas.delete("all") |
❌ |
显示文本 | t.write("Hello") |
canvas.create_text(50,50, text="Hello") |
❌ |
显示图像 | screen.addshape("img.gif") |
tk.PhotoImage(file="img.gif") |
imagebox() |
4. 用户输入
功能 | turtle | tkinter | easygui |
---|---|---|---|
文本输入 | turtle.textinput("提示","默认值") |
tk.Entry() |
enterbox("提示","标题") |
数字输入 | turtle.numinput("提示",min,max) |
需验证(validate='key' ) |
integerbox("提示") |
多字段输入 | ❌ | 需多个Entry 组合 |
multenterbox(fields=["字段1","字段2"]) |
下拉选择 | ❌ | tk.OptionMenu(root, var, *items) |
choicebox("选择", choices=["A","B"]) |
多选列表 | ❌ | tk.Listbox(selectmode=MULTIPLE) |
multchoicebox("多选", items) |
密码输入 | ❌ | tk.Entry(show="*") |
❌ |