文档章节

Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

程序员补给栈
 程序员补给栈
发布于 01/23 00:30
字数 1056
阅读 35
收藏 2

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用户界面)编程,用Python也可以写出漂亮的桌面程序,建议此次课程大家稍作了解不要浪费太多时间,因为没有哪家公司会招聘以为Python程序员开发桌面程序吧?

学完此次课程,我能做什么?

学完本次课程,大家可以完成一个简易的记事本编辑器。

学习此次课程,需要多久?

15-20分钟

课程内容

首先看一下目前有哪些主流的GUI平台。

Tkinter:使用Tk平台,支持大多数的Unix系统,同时可以在Windows和Mac下运行,是Python的标准界面库,但是由于界面丑陋,文档极差而被开发者吐槽。

wxpython:拥有成熟和丰富的包,跨平台,可在Unix,Windows,Mac下运行,入门简单,文档写的很详细,再加上官方的Demo大全,确实给初学者降低难度,可以作为入门学习的首选库。

PythonWin:只能在Windows上使用,调用windows的GUI,如果要做跨平台的应用程序,显然不会选择它。

PyGTK:使用GTK平台,Linux系统上使用较多,跨平台。

PyQt:优点界面美观,多个平台,文档和教程丰富。但是商业化使用有版权的问题,需要授权,体积相对较大。

由于wxpython比较受欢迎,今天我们一起来学习一下这个GUI平台。

1.安装 wxpython

pip3 install -U wxPython

其他版本的请到wxPython官网下载,百度wxpython直达。

2.入门程序 Hello World。

运行结果如下,弹出了一个窗口,标题为Hello World

安装好界面库以后,我们先实现第一入门程序,在桌面程序中输出Hello world。

3.代码分析

先创建一个程序

app = wx.App()

创建完程序,下一步就是创建一个窗口(Frame)

win = app.Frame(None)

创建完成窗口,我们想要显示结果怎么办?(Show)

win.show()

最后运行主程序MainLoop()

app.MainLoop()

逻辑还是比较清晰的。

具体每个方法包含了,哪些参数,大家可以看一下文档说的很清楚。

如何做一个记事本?

其实,画界面真没有太多要讲的,大多就是看文档,了解每个参数和方法的含义。上面的代码语义也很清楚,添加按钮,添加文本框,设置位置大小,多行,滚动条。

密密麻麻的文档,对界面库感兴趣的可以仔细了解一下。

界面画好了,功能如何实现呢?

看上去代码量很有点多,但是其实仔细分析一下很简单,先定义两个方法,当点击按钮时触发,按钮布局画完后,使用Bind()方法,绑定到相应的函数即可。函数内部是我们上节课学习的文件读写操作。

简单看一下离线文档和Demo

文档中详细的说明了每个参数的含义。

富文本编辑器

200+的Demo,如果把这些都看明白,一定是GUI的大神了。

小结

Python写界面库,如果没有特别大的兴趣,点到为止,了解一下就可以了。

接下来学习什么?

接下来我们将学习大部分编程语言必会技能:操作数据库。

关注公众号,回复 Python基础 下载全部代码+PDF版电子书 同时获取wxPython的离线文档和官方Demo。

© 著作权归作者所有

共有 人打赏支持
程序员补给栈
粉丝 37
博文 138
码字总数 55827
作品 0
烟台
后端工程师
私信 提问
Python实战开发之Pyramid Web框架在商城项目中的应用实战资料

Python实战开发之Pyramid Web框架在商城项目中的应用实战资料 第一讲:Python基础和入门介绍(Web开发基础) 第二讲:Python语言基础(运算符与表达式,控制流,函数,模块) 第三讲:Pytho...

神人
2013/07/15
2.9K
4
团队拙作《Python机器学习实战》

之前看国内外的 Python 机器学习的书,鲜有将机器学习到底怎么做人脸识别、怎么做风险控制、怎么做 OCR 算法模型列出的,并且真正的一个 Python 应用,不止是从机器学习库中导入一下配置一下...

yijun2018
2018/04/20
0
0
最新Python学习项目Top10!

作者 | Mybridge 译者 | Linstancy 整理 | Jane 出品 | AI科技大本营 【导读】过去一个月里,我们对近1000个Python 学习项目进行了排名,并挑选出热度前10的项目。这份清单涵盖了包括Web App...

AI科技大本营
2018/11/17
0
0
大数据分析挖掘学习方向?数据分析师的就业前景怎么样?

加米谷数据分析挖掘课程明细,从理论到云端实操环境到项目实战,手把手教您从0掌握数据分析与挖掘技术,带您走进数据时代。 第一阶段(python基础) python入门:1、Python版本特性介绍2、P...

加米谷大数据
2018/04/17
0
0
大家都在学的编程语言 Python,可以用来干什么?

编者按:Python因为简单全面易用而成为近年来大热的编程语言。但是很多人学习了这门余元的语法和基本功能之后却不知道Python能干什么以及怎么做。Realpython.com上面的一篇文章于是把Python可...

Python燕大侠
2018/07/18
0
16

没有更多内容

加载失败,请刷新页面

加载更多

学习设计模式之路

https://java-design-patterns.com/patterns/ https://www.oodesign.com/ https://www.programering.com/a/MTNxAzMwATY.html https://design-patterns.readthedocs.io/zh_CN/latest/ https:/......

晨猫
今天
1
0
JDK1.8 jar包说明

JDK 1.8 lib:access-bridge-64.jarcharsets.jarcldrdata.jardeploy.jardnsns.jarjaccess.jarjavawa.jarjce.jarjfr.jarjfxrt.jarjfxswt.jarjsse.jarlocaledata.jar......

冷基
今天
1
0
判断用户的icloud是否开启【Swift4.2】

使用icloudkit存储用户私人数据时,必须判断用户的icloud是否开启【Swift4.2】 func isICloudContainerAvailable()-> Bool { if FileManager.default.ubiquityIdentityToken != ni......

叶落花开
今天
2
0
今天的学习

1、执行git add *命令就把改动提交到了暂存区,执行git pull命令将远程仓库的数据拉到当前分支并合并,执行git checkout [branch-name]切换分支 2、执行git commit -m '说明' 命令就把改动提...

墨冥
昨天
0
0
Android4.4 及以下TextView,Button等控件使用矢量图报错

1 问题描述 最近项目开发中,图标资源我尽量使用了矢量图,然而配置了基本的兼容设置,程序在低版本中运行还是出现了问题。 xml布局文件中,在TextView中使用矢量图,比如android:drawableS...

newtrek
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部