前几天,我为朋友编写源代码监控程序时,在Python领域找到了一个非常简单易用的图形界面库。
说到图形接口库,你可能会想到TkInter、PyQt、PyGUI等热门的图形接口库,但我也尝试过。 直观感受到的是,这很难使用。 在网上搜索,查了一下有没有几个demo,带来了更改,但结果很少。 当时,我放弃了学习这些图形库,以vue flask的形式使用浏览器页面作为程序接口。 我能做这个,所以即使实现起来有点麻烦,也很快就能做好。
那个朋友说:“必须学习图形界面吗?
其实并不一定。 如果是编写自己使用或与其他程序员合作使用的程序,直接从命令行调用即可,完全不需要学习图形界面吗? 那个什么时候学? 制作游戏或者为非技术人员制作软件工具时,需要学习图形界面。 我是后者,偶尔会被别人邀请写一些小工具,有了图形界面体验会更好。
今天这个库就是PySimpleGUI。 GitHub仓库[1]有5.1K个star,还有人在20天前提交代码,可以说很烫。
我看了官方文档,找了demo,花了两个小时写了56行代码,完成了带有图形界面的监视工具。 如下所示。
PysimpleGUI最吸引人的地方是它有200多个示例程序,几乎涵盖了日常开发需求,稍加修改即可使用,非常有用。
PysimpleGUI内部打包了tkinter、Qt(pyside2)、wxPython、Remi和Remi,使您可以轻松地将界面移动到浏览器中,而无需更改代码。 下图:
另一个吸引人的地方是,它足够简单,几分钟就可以在几行代码中构建自定义GUI布局。 对初学者来说足够简单,对高级用户来说足够强大。 广泛的文档。 有100多种内置颜色主题,200多个示例程序[2],经常更新。 如果你要玩Raspberry Pi,你也可以用这个库写界面。 说到使用是否方便。
PySimpleGUI程序通常有五个部分,请参阅以下代码中的注释:
导入pysimplegui as SG # part1-导入库
#定义窗口内容
layout=[SG.text(what'syourname? (),# Part 2 -合成
[SG.input(] (),
[ SG.button ('确定' ] ]
#创建窗口
窗口=SG.window (窗口标题,layout ) # Part 3 -窗口定义
# displayandinteractwiththewindow
打开事件,values=window.read(#part4-主循环window.read ) )
# dosomethingwiththeinformationgathered
print('Hello ',values[0],'! Thanks for trying PySimpleGUI ' )
# finishupbyremovingfromthescreen
window.close () # Part 5 -关闭窗口
运行上面的代码,可以得到如下图所示的程序。
这是一个类似于hello world的程序,PySimpleGUI可以创建更强大的图形界面和游戏界面。
多个窗口
看到许多新程序员痛苦的是在他们选择的GUI工具包中打开多个窗口。 幸运的是,PySimpleGUI清楚地说明了如何执行此操作。 事实上,他们有两种不同的“设计模式”来做这种事。
为简单起见,仅演示如何运行两个活动窗口。
#-* -编码: utf-8-* -
# https://www.Jian Shu.com/u/69f 40328 d4f 0
# https://github.com/China-testing/python-API-tesing
# https://china-testing.github.io/
# supportqgroup :63001153144081101
导入pysimplegui as SG
#创建some构件
ok _ BTN=SG.button (opensecondwindow ) )。
cancel_BTN=SG.button('cancel ' ) ) ) )。
layout=[[ok_btn,cancel_btn]]
#创建第一个窗口
窗口=SG.window (' window1',layout ) )。
win2_active=False
#创建事件loop
while True:
事件1,values1=window.read (时间输出=100 ) )。
if事件1in (none,' Cancel ' ) :
# userclosedthewindoworhitthecancelbutton
布雷克
ifno twin2_ activeandevent1==' opensecondwindow ' :
win2_active=True
layout2=[SG.text('window2'],
[SG.Button('exit ' ) ]
窗口2=SG.window (' window2',layout2) )。
if win2_active:
事件2,values2=窗口2.read (time out=100 ) )。
if events2isnoneorevents2==' exit ' :
win2_active=False
窗口2.close (
window.close (
参考资料
[1] GitHub仓库:https://github.com/pysimplegui/pysimplegui
[2] 200多个示例程序:https://github.com/pysimplegui/pysimplegui/tree/master/demo程序
到目前为止,本文介绍了一个非常简单、易于使用的Python图形界面库。 有关更多相关Python图形界面库的内容,请搜索云海天教程以前的文章或继续查看以下相关文章。 今后,云海天教程就拜托你了。