pythongui入门实例大全详细教程全_python简单进阶之GUI:PySimpleGUI案例

python简单进阶之GUI:PySimpleGUI案例

雁陎 • 2020 年 04 月 23 日

Loading...

> 这是简单进阶教程系列第二篇,本系列文章主要介绍那些可以很快上手的进阶库。

阅读本文前,请确保你对PySimpleGUi库有基本了解

如果没有的话,请参考

* 使用教程:[https://www.sitstars.com/archives/82/](https://www.sitstars.com/archives/82/)

* 官方文档:[https://pysimplegui.readthedocs.io/en/latest/](https://pysimplegui.readthedocs.io/en/latest/)

## 前言

在[前一篇文章](https://www.sitstars.com/archives/82/)中,我们介绍了PySimpleGUi的基本用法,并实现了一个简单的文件批量重命名工具。如果你只是做做小项目,前一篇文章中的知识就够了。但如果你想开发稍微复杂一点项目的GUI,那可能就需要更加深入的了解了。

昨天我花了一个晚上,将很久以前写的[词云图生成脚本](https://www.sitstars.com/archives/33/)添加了一个GUI界面。碰到了许多不太小问题,修修补补之后总算是完成了,现在把代码放出来供大家参考。

> 我觉得是可以直接作为模板了,以后我需要添加一个新工具就加一个函数就行了。

项目地址:[https://github.com/caly5144/shu-s-project/tree/master/gui](https://github.com/caly5144/shu-s-project/tree/master/gui)

## 要点

* 不同的GUI界面(写不同的GUI函数)可以采用跳转的方式,这样就避免了挤在一个GUI上的尴尬场景,也方便维护。

* GUI内只写GUI相关函数,具体实现可以用调用的方式,参考[https://www.sitstars.com/archives/74/](https://www.sitstars.com/archives/74/)

* 接上,调用时建议写到GUI函数内,而不要全局调用。原因有二,一是减少了加载库的时间,用时再调用;二是防止重复调用。

* 有时需要动态更新控件(比如是否可见,是否可用),统一使用类似`window['key'].Update(visible=False)`的代码。

* 接上,由于控件隐藏再重新显示时会出现布局错误,所以建议用`Column`把所有需要隐藏的控件放到一起。

* 查看图片,难点有二:一是放到当前窗口不知道放哪里,而且不容易判断大小并调整相应布局;二是如果是程序生成的图片,那么从哪里读取呢?对于问题一,我的解决方案是直接跳转到新窗口。对于问题二,我的解决方案是先保存,再读取。

## 效果

![程序主界面](https://im.yanshu.work/article/20200423132336866_9408.png)

![词云图生成界面](https://im.yanshu.work/article/20200423132400629_21641.png)

![开始生成](https://im.yanshu.work/article/20200423132548692_20224.png)

打开`词云图生成`时,程序主界面自动隐藏,点击`返回工具箱`,则关闭当前界面,回到程序主界面

## 代码

这里只展示GUI代码,所调用的py文件请自行在github中查看,地址[https://github.com/caly5144/shu-s-project/tree/master/gui](https://github.com/caly5144/shu-s-project/tree/master/gui)

比如词云图代码,即[https://github.com/caly5144/shu-s-project/tree/master/gui/ciyun.py](https://github.com/caly5144/shu-s-project/tree/master/gui/ciyun.py)

main.py则是我们的GUI文件。代码如下:

```python

import PySimpleGUI

你可能感兴趣的:(pythongui入门实例大全详细教程全_python简单进阶之GUI:PySimpleGUI案例)