在现实生活中你可能会遇到这种情况:想知道一篇论文中哪个词语最多,哪些词语最少(以此判断文章的主要内容);想知道一部小说中哪一个人物出现的次数最多(当然,出现次数最多的那个人也不一定是主脚);想知道一部小说中主要内容,小说中哪些物件出现的次数比较多(可能没用,但有时候需要用到呢?嗯,比如老板想让你统计一下……);想知道一个名人一篇讲话稿中的主要观点和立场(对时局和观点进行分析时使用),等等诸多想知道……

在做引言中的这些统计时如果我们有一个称手的工具,把文章或者讲话稿放到工具里面,简单进行一下设置,然后输出关于这篇文章或讲话稿的词云(不敢想象,这样节省了多少人力),这个工具像魔法箱一样,是不是很酷?今天开始,就带大家一步一步实现这个词云自动生成工具。

像变魔术一样哦

关于这个工具的实现,我们分几个专题来讨论。今天,带大家一起搭建这个程序的GUI界面。

分析

对于Python来讲,GUI界面的搭建,肯定要使用GUI库了(废话一句)。Python的GUI库有很多,比如说Tkinter、wxPython、Kivy、Pyforms、PyQt、PySide、PyGTK、Pmw(结合Tkinter使用,作为Tkinter的增强版)等等(感兴趣的朋友们可以自行研究下)。但是今天我们使用非常经典的Tkinter完成GUI框架搭建。

首先搭建GUI界面

我们从获取文本内容、进行数据清洗、词云属性设置、词云生成预览四个步骤进行设计,这里我们使用Pmw中的NoteBook、Group、EntryField类,创建一个记事本类,并把相同功能的控件使用Group组合起来,把四个步骤细化成NoteBook的四个页面,四个页面内容如下。

【第一步】获取文本内容,如下图所示。

获取文本内容界面

【第二步】进行数据清洗,如下图所示。

数据清洗界面

【第三步】词云属性设置,如下图所示。

词云属性设置界面

【第四步】词云生成预览,如下图所示。

生成词云预览界面

好了,我们的界面就是这样的,然后利用Python代码实现它。

界面设计前置知识点

Pmw中NoteBook、Group、EntryField类的使用

(1)NoteBook类实现了类似我们记事本的功能,当单击tab时,相应的page内容展示出来。在GUI界面编程中,这个类节省了界面空间。如下图所示。

NoteBook控件

NoteBook的主要使用方法如下:

添加页面标签:nb.add(tabName)

让某一标签tabname获得焦点:nb.tab(tabName).focus_set()

选中某一个标签tabName:nb.selectpage(tabName)

(2)Group控件实现将一堆实现类似功能的类(控件)组合在一起的目的。它的出现,使得我们的界面更加友好,使用者可以方便找到同类条目,该控件左上角显示组合控件的名称。如下图所示。

Group控件

Group类的使用方法如下:

gp=Pmw.Group(master, tag_text=groupName)

(3)EntryField控件是Entry控件的高级版本,它可以控制我们输入的内容,当我们定义好了控件中需要输入的内容类型时,输入不合法内容将不被程序接受。比如,我们通过代码限定该输入框内只能输入整形数据时,当你输入实数时,是输不进去的。怎么样,是不是很酷。它长得和Entry控件很像,唯一不同的地方,也是它最具优点的地方就是,它的前面使用类似Label的控件提示需要输入什么样的内容(这点就相当于Label+Entry的组合)下面展示下它的使用方法。我们以输入整数为例,如下所示。

EntryField控件

ef = Pmw.EntryField(master, labelpos=W,label_text='字体最大(px):',validate={ 'validator': 'integer', 'min': 0, 'max': 1000, 'minstrict': 0, 'maxstrict': 1000},value=500,)

labelpos:对齐方式;

label_text:提示需要输入文本标签

validate:通过传入一个字典,控制输入内容,这里限定输入整数,最大值为1000,最小值0,value:为默认在EntryField中显示的内容。

使用这两个控件的目的很明显,使我们的界面变得干净整洁。

四个界面使用Tkinter和Pmw的相关控件组合实现,具体代码太长我们在后面章节进行讨论。

好了,今天就到这里了,我们只是对界面的前置知识点进行了总结,后续将带领大家实现这个项目,感兴趣的朋友们欢迎加关注并留言讨论。转载请注明出处(百家号:Python高手养成)

python制作软件界面_使用Python制作一个带GUI界面的词云自动生成工具(一)相关推荐

  1. python词云去除词_使用Python制作一个带GUI界面的词云自动生成工具(连载五)

    上一篇中我们介绍了自动生成词云工具(GUI)中数据清洗界面的实现过程(详解词云自动生成工具的数据清洗界面制作过程(连载四)),了解掌握了Grid.Pack混合布局的方法.本篇我们将讨论Python自动 ...

  2. python color属性_使用Python制作一个带GUI界面的词云自动生成工具(连载七)

    前几篇向大家介绍了词云自动生成工具(GUI)的详解GUI词云自动生成工具中词云属性设置界面的实现(连载六).通过前面内容我们基本构建出了词云自动生成工具的主要框架.本篇结合tkinter中的filed ...

  3. python制作软件封面_用python给MP3加封面图片,修改作者,专辑等信息

    如何给MP3加封面呢,当然用iturns,千千静听当然是可以的,但是如果用程序来自动加封面呢,研究linux的ffmpeg,发现用这个加专辑信息还是容易的,但是封面始终加不上,无法,去研究mp3文件的 ...

  4. gif透明背景动画_火柴人动画制作软件下载_火柴人动画制作软件最新电脑版下载...

          火柴人动画制作软件官方版(Pivot Stickfigures Animator)是一款完全免费的火柴人动画制作软件.如果您不具备Flash等专业动画软件制作技能,那么可使用火柴人动画制作 ...

  5. 如何给python爬虫加界面_给Python爬虫做一个界面.上

    做爬虫做了那么久,开始逐渐不满足写好程序,每次只能完成一件事情.开始思考如何可以做一个简单界面交互,再增加爬虫的可操作室,做交互界面有两个思路: 用Django做一个web界面: 用PyQt做一个ex ...

  6. pythongui登录界面密码显示_用python写一个带有gui界面的密码生成器

    需要用到的库: tkinter:构建gui界面 pyperclip:复制功能 random:生成随机数 string:处理字符串 代码: from tkinter import * import ra ...

  7. python和报表生成工具_报表自动生成工具的原理方法,及热门软件

    阅读提示: 文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式. FineReport最新版免费试用:https://www.finereport. ...

  8. html帮助文件的制作软件,FAR HTML(帮助文件制作软件)V5.6.1 官方特别版

    FAR HTML(帮助文件制作软件)是目前公认为最好的帮助文件制作软件.它除了能制作目前流行的 HTML 帮助文件(即 CHM 文件)之外,还能制作新一代的.在 Visual Studio .NET ...

  9. python进行数据查询_使用Python实现NBA球员数据查询小程序功能

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于早起Python ,作者投稿君 一.前言 有时将代码转成带有界面的程序,会极大地方便 ...

最新文章

  1. 一个完整的schema验证xml的样例
  2. 汇编-简单的条件转移指令应用-附例子:判断坐标所在象限
  3. Maven仓库添加自定义jar包
  4. 在SSH框架中,如何得到POST请求的URL和参数列表
  5. WCF测试工具,post经验
  6. 【获奖公布】元老选手心得分享:请把自己看成一位出色的工程师
  7. 学JAVA第十三天,方法、方法重载及构造函数
  8. (原)android的JNI中使用C++的类
  9. kotlin xml布局_Android工具栏教程– XML布局和Kotlin
  10. mysql large pages_Innodb内存管理解析
  11. 7-5 计算分段函数[3] (10 分)
  12. 4. Linux 高性能服务器编程 --- TCP/IP 通信
  13. SqlServer2005海量数据存储过程分页(上)
  14. openfire:openfire单独编译指定插件的方法
  15. Python软件无线电(1):概述
  16. hsf 架构_HSF源码剖析
  17. Linux网络编程 -- Linux常用工具的使用(vim、gcc、gdb、makefile、shell)
  18. 使用QRencode 生成个人微信二维码,欢迎大家来微信和我做朋友
  19. 苹果回应巴西政府禁止销售不附赠充电器的iPhone;小米造车新进展;国内首家以数据服务为核心的央企数据中台上线 | EA周报...
  20. 【网络实验】10G网络下的真实带宽——CPU负载与网卡TSO、GSO

热门文章

  1. GoldenGate 的实现原理
  2. 第四届工匠中国论坛2020年年会在北京双益发文创园召开
  3. 关于python浮点数类型错误的是_关于Python语言的浮点数类型,以下选项中描述错误的是...
  4. 解决微信小程序关于轮播图宽度无法撑满页面的问题
  5. 一个1x1px大小Data/Base64数据的gif透明图片
  6. 深入浅出CChart 每日一课——第二课 上一课代码分析,骨骼精奇之一点即通 .
  7. 线上课程直播平台做推广的方式有哪几种?
  8. 国产软件浩辰CAD从“芯”出发,推动企业科技创新发展
  9. 支付宝支付成功后session失效
  10. E店宝后置打单解决方案帮助卖家提升效率