使用 Python 库“TKEasyGUI”创建一个简单的绘图应用程序

您好

我是来自Volatile

时光飞逝,转眼已是十二月。
前几天我试用了一个TKEasyGUI,听说它能轻松创建桌面应用程序,所以我决定做一个绘图应用程序。

TKEasyGUI是什么?

它似乎是为了应对开源库
PySimpleGUI更多信息请参见: https://github.com/kujirahand/tkeasygui-python

准备

我们来安装一下,然后试用一下。

■ 验证环境

Ubuntu 24.04 LTS Python 3.12.3

这次我们将使用虚拟环境(venv)。你可以使用任何你喜欢的虚拟环境。

$ python3 -m venv env $ source env/bin/activate

我们还需要 TKEasyGUI 和 tkinter,所以请安装它们。

(env)$ pip install TKEasyGUI (env)$ sudo apt install python3-tk

你只需要准备这些。超级简单。

试用示例应用

让我们来运行一下 GitHub 上发布的示例应用程序。
>> “如何使用 - 弹出对话框”

import TkEasyGUI as eg name = eg.input("你的名字是什么?") eg.print(f"你好,{name}。")

 

(env)$ python3 question.py 

系统会要求您输入姓名,请输入。

它会向您问好。

这很简单,您只需要输入两句话(不包括导入语句)。
接下来,我们来创建一个简单的绘图应用。

绘图 app.py

目前来说,什么都行,所以我想要一个可以保存为 PNG 格式、易于绘制且颜色可选的图形界面。
看起来以下 Canvas 元素可以用来绘图:
https://github.com/kujirahand/tkeasygui-python/blob/main/docs/TkEasyGUI/widgets-py.md#canvas

下面的完整代码
,如果你只想让它运行起来,直接运行它就行了。

import TkEasyGUI as eg from tkinter import filedialog, colorchooser from PIL import Image, ImageDraw # 绘图设置 drawing_color = "black" # 初始颜色 last_x, last_y = None, None # 记录上次绘制位置 # 文件保存函数 def save_canvas_as_image(): file_path = filedialog.asksaveasfilename(defaultextension=".png", filetypes=[("PNG 文件", "*.png")]) if file_path: canvas_image.save(file_path) eg.popup("保存完成", "图像已保存。") # 颜色选择器函数 def choose_color(): global drawing_color color_code = colorchooser.askcolor(title="选择颜色") if color_code: drawing_color = color_code[1] # 获取所选颜色的十六进制代码 # 绘图函数 def start_draw(event): global last_x, last_y last_x, last_y = event.x, event.y def draw(event): global last_x, last_y x, y = event.x, event.y if last_x is not None and last_y is not None: # 在画布上绘制一条线 canvas.get().create_line(last_x, last_y, x, y, fill=drawing_color, width=2) # 同时在 PIL 图像上绘制 draw_on_image.line([last_x, last_y, x, y], fill=drawing_color, width=2) last_x, last_y = x, y # 清除画布 def clear_canvas(): canvas.clear() draw_on_image.rectangle((0, 0, 400, 400), fill="white") # 同时重置图像 # 布局定义 layout = [ [eg.Text("绘图应用")], [eg.Canvas(key="-CANVAS-", size=(400, 400), background_color="white")], [eg.Button("更改颜色", key="-COLOR-"), eg.Button("清除"), eg.Button("保存"), eg.Button("退出")] ] # 创建一个 PIL 图像并获取一个用于绘制的对象 canvas_image = Image.new("RGB", (400, 400), "white") draw_on_image = ImageDraw.Draw(canvas_image) # 创建一个窗口 with eg.Window("绘图应用程序", layout) as window: canvas = window["-CANVAS-"] # 绑定鼠标事件 canvas.get().bind("<Button-1> ", start_draw) canvas.get().bind("<B1-Motion> ", draw) # 事件循环,遍历 window.event_iter() 中的每个事件和值:如果 event == "-COLOR-": choose_color() elif event == "Clear": clear_canvas() elif event == "Save": save_canvas_as_image() elif event == "Exit" or event is None: break

我们来试试启动它。

(env)$ python oekaki.py 

屏幕上显示着一张空白画布。

我们来画一只猫。

我们把它保存下来。

你还可以改变它的颜色。

看起来不错,

有时间我再试试。再见。

完全的

如果您觉得这篇文章有用,请点击【点赞】!
11
加载中...
11票,平均分:1.00/111
2,297
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

川健

来自系统解决方案部门的
一只奇特的宝可梦