前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个非常简单好用的 Python 图形界面库

一个非常简单好用的 Python 图形界面库

作者头像
somenzz
发布2020-12-22 15:40:05
3K0
发布2020-12-22 15:40:05
举报
文章被收录于专栏:Python七号Python七号

前一阵,我在为朋友编写一个源代码监控程序的时候,发现了一个 Python 领域非常简单好用的图形界面库。

说起图形界面库,你可能会想到 TkInter、PyQt、PyGUI 等流行的图形界面库,我也曾经尝试使用,一个很直观的感受就是,这太难用了。就去网上搜搜,看看有没有一些 demo,拿来改改,结果很少有,当时我就放弃了这些图形库的学习,转而使用了 vue+flask 的形式以浏览器网页作为程序界面,因为我会这个,即使实现起来稍微麻烦,但是也快。

那有朋友可能问了:一定要学习图形界面吗?

其实不一定,如果你写的程序都是自己用,或者配合其他程序员使用,那么直接命令行调用即可,完全不用学习图形界面?那什么时候要学呢?如果你要做游戏,或者你要为他人(非技术人员)编写软件工具,那么你就需要学习图形界面了。我是后者,偶尔受邀帮别人写点小工具,因此有个图形界面体验会好很多。

今天要说的这个库就是 PySimpleGUI,在 GitHub 仓库[1]有 5.1K 个 star,20 天前还有人提交代码,可以说非常火热了。

我看了官方文档,找了个 demo,花了 2 个小时的时间,写了 56 行代码,就搞定了一个具有图形界面的监控工具,如下:

要说 PysimpleGUI 最吸引我的地方,在于它有 200 多个示例程序,几乎覆盖了日常的开发需求,拿来稍作修改就可以用,着实方便。

PysimpleGUI 内部封装了 tkinter,Qt(pyside2),wxPython和 Remi,Remi 用于浏览器支持,因此你很容易将你的界面搬到浏览器中而无需修改代码。如下图:

还有最吸引我的一点,就是足够简单,在几分钟内用几行代码就可以构建自定义 GUI 布局,对于初学者来说足够容易,对于高级用户来说足够强大。广泛的文档。有 100 多种内置颜色主题,200 多个示例程序[2],还经常更新。如果你玩 Raspberry Pi,也可以用这个库写界面,你说好用不好用。

通常一个 PySimpleGUI 程序包含 5 个部分,见下面代码的注释:

代码语言:javascript
复制
import PySimpleGUI as sg                        # Part 1 - 导入库

# 定义窗口的内容
layout = [  [sg.Text("What's your name?")],     # Part 2 - 排版
            [sg.Input()],
            [sg.Button('Ok')] ]

# 创建窗口
window = sg.Window('Window Title', layout)      # Part 3 - 窗口定义
                                                
# Display and interact with the Window
event, values = window.read()                   # Part 4 - 开启主循环 window.read()

# Do something with the information gathered
print('Hello', values[0], "! Thanks for trying PySimpleGUI")

# Finish up by removing from the screen
window.close()  # Part 5 - 关闭窗口

执行上述代码,会得到一个如下图所示的程序:

这仅仅是一个类似 hello world 的程序,PySimpleGUI 还可以做出更加强大的图形界面和游戏界面,比如:

最后,再告诉大家一条小技巧,如果看到好的图形界面程序,包括网站,记得收藏相关的代码,下次可以直接拿来用,提升开发效率。本文涉及的开源软件监控工具源代码,如果感兴趣,可以点击「阅读原文」获取下载连接。

最后,学习一个新技术要看重其迁移能力,学习一次,可以使用无数次,那么该技术就值得学。原创不易,如果觉得文章对你有帮助,还请关注、在看支持。

参考资料

[1]

GitHub 仓库: https://github.com/PySimpleGUI/PySimpleGUI

[2]

200 多个示例程序: https://github.com/PySimpleGUI/PySimpleGUI/tree/master/DemoPrograms

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python七号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档