作为Pyhon开发者,你迟早都会碰到图形用户界面(GUI)应用开发任务,目前市场上有大量Python GUI开发框架可供选择,Python wiki GUI programming给出了超过30个跨平台框架方案,包括Pyjamas这样的跨浏览器web开发框架。

如何从众多的Python GUI框架和工具包中进行选择是个头疼的问题,以下IT经理网整理推荐四个开发工具包(Gtk、Qt、Tk和wxwidgets)以及七个优秀框架供广大开发者参考(除了PyQt其他都完全免费):

Kivy

  这是一个非常有趣的项目,基于OpenGL ES 2,支持Android和iOS平台的原生多点触摸,作为事件驱动的框架,Kivy非常适合游戏开发,非常适合处理从widgets到动画的任务。如果你想开发跨平台的图形应用,或者仅仅是需要一个强大的跨平台图形用户开发框架,Kivy都是不错的选择。

Pyforms

  诞生只有两年的Pyforms是一个Python2.7/3.x跨环境图形应用开发框架,模块化和代码复用可以节省大量工作。

PyGObject(PyGi)

  PyGObject是一个利用GTK+为GNOME或Python应用开发的组件,可与跨平台代码库GObject绑定。GTK+是一个功能全面的免费跨平台widget开发工具包,为大量Linux和Windows/Mac OSX应用开发图形用户界面。

PyQt

  Qt是一个C++编写的跨平台开发框架,如果你的应用是完全开源的,就可以免费使用Qt,否则你需要购买商业许可。Qt已经存在很久,一度属于诺基亚公司,作为一个非常全面的工具代码库和API,被大量行业广泛采用,覆盖包括移动在内的多个平台。你的设备中使用的卫星导航应用,其图形用户界面往往就是Qt开发的。

PyGUI

  与Kivy和PyQt相比,PyGUI的最大区别是仅仅面向UNIX、Macintosh和Windows平台。PyGUI的一个主要目的就是尽量减少Python应用与平台底层GUI之间的代码量,如果你需要一个简单快速容易上手的GUI开发框架,那么PyGUI是一个不错的选择。

libavg

  libavg是一个C++编写的第三方开源库,可以运行在Linux、Mac OS X和Windows平台上。libavg被官方应用于艺术性较强的展示应用,可以同时处理数以千计的多媒体对象(图片、文本、视频和摄像头数据)。那些大屏幕上展示的多人共玩的多点触摸游戏,八成都有libavg的功劳。

wxPython

虽然还没有为Python3做好准备,但是作为资格最老,最流行的Python GUI开发框架之一,wxPython名气很大,不得不提。wxPython基于wxWidgets,是一个C++编写的跨平台GUI库,除了标准的对话框,还提供一个2D路径绘制API,支持多种文件格式以及文本编辑和字处理widgets。

挺棒的七个Python图形应用GUI开发框架的更多相关文章

  1. [Python学习笔记][第七章Python文件操作]

    2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...

  2. python图形界面(GUI)设计

    不要问我为什么要用 python 来做这种事,我回到“高兴咋地”也不是不可以,总之好奇有没有好的解决方案.逛了一圈下来,总体上来说,python 图形界面有以下几个可行度比较高的解决方案. 1. py ...

  3. Python 图形 GUI 库 pyqtgraph

    原文  Python 图形 GUI 库 pyqtgraph pyqtgraph 是纯 Python 图形 GUI 库,基于PyQT4 /pyside和NumPy.它主要目的用于在数学/科学/工程中.M ...

  4. python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍

    目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...

  5. Python 图形界面(GUI)设计

    不要问我为什么要用 Python 来做这种事,我回到“高兴咋地”也不是不可以,总之好奇有没有好的解决方案.逛了一圈下来,总体上来说,Python 图形界面有以下几个可行度比较高的解决方案. 1. py ...

  6. 基于七牛Python SDK写的一个批量下载脚本

    前言 上一篇基于七牛Python SDK写的一个同步脚本所写的脚本只支持上传,不支持文件下载. 虽然这个需求不太强烈,但有可能有人(在备份.迁移时)需要,而官方有没提供对应的工具,所以我就把这个功能也 ...

  7. 基于七牛Python SDK写的一个同步脚本

    需求背景 最近刚搭了个markdown静态博客,想把博客的图片放到云存储中. 经过调研觉得七牛可以满足我个人的需求,就选它了. 博客要引用图片就要先将图片上传到云上. 虽然七牛网站后台可以上传文件,但 ...

  8. 很棒的git和python学习网站

    很棒的git和python学习网站:http://www.liaoxuefeng.com/ 博主名叫廖雪峰

  9. Python图形用户界面-Tkinter

    Tkinter是什么 python 特定的GUI界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的GUI界面,我们可以用GUI 实现很多一个直观的功能,如何想开发一个计算器,如果 ...

随机推荐

  1. 【Matlab开发】matlab中norm范数以及向量点积、绘图设置相关

    [Matlab开发]matlab中norm范数以及向量点积.绘图设置相关 标签(空格分隔): [Matlab开发] 声明:引用请注明出处http://blog.csdn.net/lg125915677 ...

  2. Object类的equals方法 常用API

    boolean equals (Object obj)(return this==obj):  p1.equals(p2): 基本数据类型比较的是值      引用数据类型:默认比较的是两个对象的地址 ...

  3. [转帖]【Oracle】详解Oracle中NLS_LANG变量的使用

    [Oracle]详解Oracle中NLS_LANG变量的使用 https://www.cnblogs.com/HDK2016/p/6880560.html NLS_LANG=LANGUAGE_TERR ...

  4. Linux Shell中的变量声明和一些特殊变量

    在SHELL中定义变量比较直接,无类型区别,不需要像Java那样定义好是String还是int等. 声明变量需要遵守或者注意的几点: 变量名和等号之间不能有空格. 变量名首字符必须为字母. 变量名里可 ...

  5. JSP和Servlet异常处理转发

    <error-page> <!-- 指明异常类型. --> <exception-type>java.lang.ArrayIndexOutOfBoundsExcep ...

  6. 迁移WordPress

    一.迁移目的 WordPress是一款能让您建立出色网站.博客或应用的开源软件.官网:https://cn.wordpress.org/download/,最开始是将WordPress部署在本地虚拟机 ...

  7. dede按照权重排序dede:list和得的:arclist

    dede:list 的方法 1.找到"根目录\include\arc.listview.class.php"文件. 2.修改代码:在文件第727行处添加按weight排序判断代码( ...

  8. python — 函数基础知识(一)

    目录 1 面向过程编程与函数式编程 2 函数的基本结构 3 函数的参数 1 面向过程编程与函数式编程 截至目前我们所接触.所写的编程为:面向过程式编程[可读性差/可重用性差] # 面向过程编程 use ...

  9. linux下mysql启动 Starting MySQL. ERROR! The server quit without updating PID file(xxx/x.pid)

    service mysql start 报错: Starting MySQL. ERROR! The server quit without updating PID file(xxx/x.pid) ...

  10. JS基础_全局作用域

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...