写点什么

“程”风破浪的开发者|python GUI 开发记录

作者:衝鋒壹号
  • 2022-10-25
    广东
  • 本文字数:1519 字

    阅读完需:约 5 分钟

“程”风破浪的开发者|python GUI开发记录

前言

图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。图形用户界面由窗口、下拉菜单、对话框及其相应的控制机制构成,在各种新式应用程序中都是标准化的,即相同的操作总是以同样的方式来完成,在图形用户界面,用户看到和操作的都是图形对象,应用的是计算机图形学的技术。

当然,我实际上是一个 Golang 开发,只是公司业务需求需要给客户开发一个 GUI 的客户端,考虑过Golang GUI 去做,当时各种环境没配起来,所以想到了简单的 python 去做,没想到还挺容易的,做的时候只要敢试着写代码就行,其他的根本不用怕,就跟古人所言那要,世上无难事,只怕有心人。其实当时我想用Golang GUI的,但是时间紧任务重放弃了,毕竟我还是做个简单的 python 动画。

Python GUI 库

python GUI常用的库有TkinterPyQt5wxPythonPyGTK,唯有Tkinter是最为基础的 GUI,下面就来比较一下这几个 GUI 区别。

Tkinter

Python 内置图形界面库——Tkinter。

Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

PyQt5

pyqt5 是一套 Python 绑定 Digia QT5 应用的框架。它可用于 Python 2 和 3。Qt 库是最强大的 GUI 库之一。Qt 强大之处在于网上有很多 pyqt 的资源,而且 qt 技术已经相当成熟,pyqt 是采用基本和 qt 一致的 api,因此之前使用过 qt 的人,转移到 pyqt 很容易。

但是我也考虑过用该库,但是我发现连 Tkinter 都没有用好就放弃了。

wxPython

wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能健全的 GUI 用户界面。

PyGTK

PyGTK 让你用 Python 轻松创建具有图形用户界面的程序.底层的 GTK+提供了各 式的可视元素和功能,如果需要,你能开发在 GNOME 桌面系统运行的功能完整的软件。

实践

我的第一个 GUI 页面其实并不是上述所说的,而是easygui,毕竟在 Windows 想用 Python 开发一些简单的界面,easygui可以快速帮你上手,因为百度上可以轻而易举的搜到 easygui 的各种 demo,不需要官方文档都能轻松开发。开发者最主要的还是得实践。

但是一旦使用写完逻辑以后,我发现页面交互的友好性极其差。在我完成业务逻辑开发后,可以明显体验到在程序处理时,easygui 页面离奇消失了,其实是因为后台运行,GUI 页面不做任何展示处理,这时候会让人误以为程序卡死等问题。

所以,交付完成第一个 low 版本的页面后,开始改造第二个版本,立马开始了 Tkinter 的文档阅读,当我阅读完文章之后,发现其实用easygui开发是浪费时间😂,不是看不起easygui是他的功能比较受限制。

easygui 的实践

一开始的 gui 是以为丑为主,那么我的 GUI 一开始就是处理用户选择操作和文件路径等,基本上都是用 easygui 的 megbox()的函数去实现,操作基本上是一条路走到底!所以用户体验很差。

Tkinter 的实践

代码比 easygui 多,但是页面确实美观,这幅图是做花了较长时间去做的,里面的组件摆放都算是精心调试,最终还是做出了满意的效果,因为底层逻辑在 easygui 那边花费了时间,所以在 Tkinter 上没有过多费事。


总结

世上无难事,只怕有心人,我们是踩在前人的肩膀上前行,只要不造成事故,随便试!虽然我只是 golang 开发,但是编程总归是万变不离其宗,难就难在不同语言编程习惯不同,有时候换一种语言就得重新适应语法。但是 1024 刚刚,大家还得努力冲啊!

发布于: 刚刚阅读数: 3
用户头像

衝鋒壹号

关注

还未添加个人签名 2020-10-20 加入

还未添加个人简介

评论

发布
暂无评论
“程”风破浪的开发者|python GUI开发记录_学习方法_衝鋒壹号_InfoQ写作社区