谈谈python中GUI的选择


Posted in Python onMarch 01, 2018

尽管内容可能有些老,但是没有关系,对于想深入Python开发的工作者,在选择GUI开发包,乃至可视化IDE方面都还有相当的借鉴意义。

Python最大的特点就在于她的快速开发功能。作为一种胶水型语言,python几乎可以渗透在我们编程过程中的各个领域。这里我简单介绍一下用 python进行gui开发的一些选择。

1、Tkinter

Tkinter似乎是与tcl语言同时发展起来的一种界面库。tkinter是python的配备的标准gui库,也是opensource的产物。 Tkinter可用于windows/Linux/unix/macintosh操作系统,而且显示风格是本地化的。Tkinter用起来非常简单,python自带的IDLE就是采用它写的。除此外,tkinter的扩展集pmw和Tix功能上都要相对它强大,但tkinter却是最基本的。我认为,在用python做gui开发,tkinter是最基本的知识,所以这个环节是必须要学习的。你或许在以后的开发中并不常用tkinter,但是一些小型的应用上面,他还是很有用的,而且开发速度也很快。

2、WxPython

WxWidgets应该算是近几年了比较流行的GUI跨平台开发技术了。wxWidgets有不同的版本应用,有c 的,也有basic的,现在在 python上面也有较好的移植。wxpython的功能上面要强于tkinter,她提供了超过200个类,面向对象的编程风格,设计的框架类似于 MFC。对于大型GUI应用上面,wxPython还是具有很强的优势的。boa constructor可以帮助我们快速可视地构建wxwidgets界面。

3、PyQT

Qt同样是一种开源的GUI库,Qt的类库大约在300多个,函数大约在5700多个。Qt同样适合于大型应用,由它自带的qt designer可以让我们轻松来构建界面元素。

4、pyGtk

Gtk是linux下Gnome的核心开发库了。功能上面非常齐全。值得说明的是,在windows平台下gtk的显示风格并不是特别本地化。不过他带的glade的界面设计器还是可以帮你省不少事的。

5、Jython

尝试过用python访问Java类库吗,那么就用jython吧。jython其实可以认为是另外一个python开发环境,基于java的,但是大多数的CPython调用jython下还是可以的。你可以在jython环境下像使用java一样来通过python的语法来调用java语言,真的很酷。

6、MFC

Windows Pywin32允许你像VC一样的形式来使用PYTHON开发win32应用。代码风格可以类似win32 sdk,也可以类似MFC,由你选择。如果你仍不放弃vc一样的代码过程在python下,那么这就是一个不错的选择。

7、PythonCard

PythonCard其实是对wxPython的再封装。不过封装的更加简单,使用起来觉得比wxPython更直观,也更简单化了。

8、Dabo

仍是一个基于wxpython的再封装库,没用过,不太了解。它提供数据库访问,商业逻辑以及用户界面。

9、AnyGui

通过底层的api来访问其它工具集,像tkinter,wxpython和qt.具体也没怎么用过。

10、WPY

MFC风格的Gui开发库,代码风格也类似于MFC,仅管如此,你依旧可以使用这个库来开发GUI应用,而不用担心平台移植的问题。她同样是一个跨平台的库。

11、IronPython

如果你要想开发.net下面的应用的话,那么IronPython就是你的选择,与jython有点类似,他同样支持标准的python模块,但同样增加了对.net库的支持。你也可以理解为他是另一个python开发环境。你可以非常方便地使用python语法进行.net应用的开发,这一点听起来真的挺有意思。

总之,介绍了这么多,我个人意见是,如果你是java用户,那么你就用jython吧,除了可以享受python的模块功能及语法外,你可以找到许多 java的影子;如果你是.net用户,那么就用iron python吧。如果你对Visual C 很熟悉,那么你可以使用MFC,WPY或是wxPython,当然我更建议wxPython了。当然,我认为对于tkinter是每一个原来搞C的人都应该了解和学习的GUI库,因为她很轻便,小型应用就可以使用她来搞定,而对于较大型应用可以采用pyGtk,pyQt,WxPython或 PythonCard来搞定,这样的话,既可以注重知识的衔接性,也可以快速进行软体的开发了。

Python 相关文章推荐
Python中使用ConfigParser解析ini配置文件实例
Aug 30 Python
使用python检测主机存活端口及检查存活主机
Oct 12 Python
Python 搭建Web站点之Web服务器与Web框架
Nov 06 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
Dec 04 Python
python2与python3共存问题的解决方法
Sep 18 Python
python环形单链表的约瑟夫问题详解
Sep 27 Python
python实现12306登录并保存cookie的方法示例
Dec 17 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
Jan 03 Python
pytorch中图像的数据格式实例
Feb 11 Python
使用Pycharm分段执行代码
Apr 15 Python
虚拟环境及venv和virtualenv的区别说明
Feb 05 Python
matplotlib bar()实现百分比堆积柱状图
Feb 24 Python
纯python实现机器学习之kNN算法示例
Mar 01 #Python
用python与文件进行交互的方法
Mar 01 #Python
python爬虫爬取快手视频多线程下载功能
Feb 28 #Python
python爬取m3u8连接的视频
Feb 28 #Python
python实现m3u8格式转换为mp4视频格式
Feb 28 #Python
浅谈Python中的私有变量
Feb 28 #Python
python中logging包的使用总结
Feb 28 #Python
You might like
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
2011/05/24 PHP
PHP操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
php实现留言板功能
2017/03/05 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
2018/05/21 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
详解Vue.js 作用域、slot用法(单个slot、具名slot)
2019/10/15 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
处理Python中的URLError异常的方法
2015/04/30 Python
python实现12306抢票及自动邮件发送提醒付款功能
2018/03/08 Python
python飞机大战pygame游戏框架搭建操作详解
2019/12/17 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
纽约著名的服装辅料来源:M&J Trimming
2017/07/26 全球购物
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
应届生的求职推荐信范文
2013/11/30 职场文书
致跳远、跳高运动员广播稿
2014/01/09 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
2015年手术室工作总结
2015/05/11 职场文书
2016年感恩节寄语
2015/12/07 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers