🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 什么是GUI ![](http://blog.pentazoom.ir/wp-content/uploads/2018/01/pw707-790x390.jpg) GUI是图形用户界面(Graphical User Interface)的意思。我们现在用的软件、程序、游戏。都有用户界面。我们早已经告别了黑白终端的时代。一个美观、简洁的用户界面是软件的核心组成部分。想想看,如果王者荣耀的所有英雄都是黑白色的,暴君、大龙是俩豆腐块,还有多少人会有兴趣玩游戏呢? ![](https://tc.sinaimg.cn/maxwidth.2048/tc.service.weibo.com/img0_pconline_com_cn/f4d3002a2e004a39cdf04829aa366dc7.jpg) 我们拿QQ举例子。打开QQ后,出现联调界面。界面的上方有个窗口栏,里面一般包含 缩小、方法和关闭。窗口栏的下面就是软件的主题功能了。里面有很多的控件。按钮、输入框、列表等等,这些都属于窗口控件。 **** ## tkinter python使用tkinter模块实现用户界面。tkinter内置了窗口、画板、按钮、输入框等常用用户交互组件。通过这些组件,我们可以搭建一个简单易用的用户界面。看例子: ![](https://s1.ax1x.com/2018/09/06/iCQg7F.png) 我们通过import语句讲tkinter模块里的所有对象引入进来。代码第6行`top = TK()` 定义了一个tk对象。我们调用tk对象的 mianloop方法初始化窗口界面。 ## 常用控件 一个窗口界面中通常需要输入框、按钮等多种控件,tkinter内置了很多控件,具体可以参考下表: ![](https://s1.ax1x.com/2018/09/06/iCQOtH.png) 我们来用上面的空间画一个图形界面,看代码: ![](https://s1.ax1x.com/2018/09/06/iCUoPf.png) 我们在定义控件时,要注意一下几个事项: 1)传入父控件。tkinter的控件是一个完整的树结构,根是tkinter对象本身。 2)控件的通用属性和方法。tkinter的控件有一些公共属性,参考下图: ![](https://s1.ax1x.com/2018/09/06/iCUjZn.png) 3)调用pack方法将控件渲染出来。 ## 控件响应 按钮点击后是要进行响应的。我们可以传入响应函数来处理按钮点击事件。看代码: ![](https://s1.ax1x.com/2018/09/06/iCaFsJ.png) 在按钮对象的定义中,我们传入 command参数,参数值是showWidgets函数,showWidgets定义了一个确认框。 ## 现代GUI 通过例子我们可以看到python自带的tkinter模块实现的界面有些*简陋*。大部分商业软件都有华丽的界面展示。除了tkinter,我们还可以学习一些其他的界面实现方案来优化我们的软件。比如::Qt,GTK,wxPython,Electron ## web&移动设备 随着互联网的发展,大部分程序和网站都运行在web上了。相比于桌面应用,web网站具有不用安装、随时修改、跨平台、跨设备等诸多好处。因此,写桌面应用的人越来越少,相对应的,开发web网站的人越来越多了。 ![](http://shejidx.com/wp-content/uploads/2015/02/uuu1.jpg) 除了web网站,近几年移动互联网也特别火,伴随iOS、Android的流行。App开发也成为一项热门技能。相比于开发一个桌面应用,发布一个App会酷很多,也会得到更多的用户。 ![](https://i.amz.mshcdn.com/VoBVSo8vMzXOmxKAX7xlxVHJYuo=/950x534/filters:quality(90)/https%3A%2F%2Fblueprint-api-production.s3.amazonaws.com%2Fuploads%2Fcard%2Fimage%2F829910%2Fe38b0256-c301-4eca-a55e-be8941f8477c.jpg) 下节课,我们一起用tkinter写一个小项目。简单模拟一下图形界面的开发流程。 **阿达老师-孩子身边的编程专家** *完整课程请关注阿达老师,主页里有完整的课程目录和观看地址*