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

1. pyside

为什么要把它写第一个呢?因为已经接触过 Qt,所以,总体来讲,感觉它更亲一点。没错,它就是 pyQt 的 LGPL 版本(Qt官方的介绍是,Python for Qt)。

这个框架最早是由 Nokia 的芒果团队做完的,但是,众所周知的原因,这个团队已经消失了。目前从找到的资料来看,Qt 重新接管了它的开发工作,而且处于活跃状态。但是也不见有人推广啊。。。据说,Matplotlib,PhotoGrabber,Wing IDE,Lucas Chess,Fminer都是用 pyside 来做的,貌似很好用的样子(别问我他们是干嘛的,我是 copy 来的)。

Nokia 的团队开发的哟!是为了手机开发的哟!那自然天然的支持 Qt Mobile Interface 了。

它的主页:http://qt-project.org/wiki/PySide/

这两位兄台对 pyside 做了不错的介绍:

1) http://blog.sina.com.cn/s/blog_62c832270101dca6.html

2)http://www.cnblogs.com/goodhacker/p/3984377.html

2. tkInter

这是 Python 做的 tk/tcl 的壳。tk/tcl 有着广泛的应用,据说用户群体很庞大。而且, tcl8 以后,用它做出来的 App 已经可以具备系统原生的效果了,不再是那种丑丑的界面。

这个是 Python 官方承认的标准 GUI 方案(官方说 “de-facto standard“,执行上的标准,我们还没承认?),资料也比较多,自行了解吧,这里只做备忘。

总体感觉不大好,虽然说也支持多种平台,但是还是呵呵了。

主页:https://wiki.python.org/moin/TkInter/

3. PyGTK

偶然发现,LinuxMint 的好多页面实现,都用的是 PyGTK。操作系统级别的实现,应该是会比较在乎效率的?所以,对 PyGTK 做了一下简单了解。

PyGTK 的所有可是功能都是调用 GTK+ library 来实现的,所以,据官方介绍, PyGTK 是可以开发全功能的 GUI 程序的。而且, GTK 和 Python 都是跨平台的缘故,PyGTK 无需任何修改,就可以随意在任意操作系统上运行(安装过 GTK 库的话)。

此外,因为 PyGTK 的主要设计目标是使用简单和快速开发(ease of use and rapid prototyping)。此外,PyGTK 还有一流的处理本地化语言的独特功能。

PyGTK 使用 LGPL license。

项目主页:http://www.pygtk.org/

4. wxPython

wxWidget 的 Python 版本。wxWidget 的知名度也就不必介绍了,似乎 wxPython 也比 tkinter 更受欢迎。wxPython 的官方站更是吊炸天的挂着一句“Why the hell hasn't wxPython become the standard GUI for Python yet?”(现已消失,怂了?)。

tkinter 都没兴趣了解, wxWidget 也就被呵呵了。不过做小三能做这么有名,也自然有过人之处,自然不能榜上无名。

主页:http://www.wxpython.org

Python 图形界面(GUI)设计的更多相关文章

  1. 十. 图形界面(GUI)设计1.图形界面设计基础

    早先程序使用最简单的输入输出方式,用户在键盘输入数据,程序将信息输出在屏幕上.现代程序要求使用图形用户界面(Graphical User Interface,GUI),界面中有菜单.按钮等,用户通过鼠 ...

  2. 十. 图形界面(GUI)设计3.标签、按钮和按钮事件

    标签和按钮也许是图形界面中最常见的两种组件,按钮又总是与激发动作事件有关. 标签 标签(JLabel)是最简单的Swing组件.标签对象的作用是对位于其后的界面组件作说明.可以设置标签的属性,即前景色 ...

  3. 十. 图形界面(GUI)设计2.框架窗口

    窗口是GUI编程的基础,小应用程序或图形界面的应用程序的可视组件都放在窗口中,在GUI中,窗口是用户屏幕的一部分,起着在屏幕中一个小屏幕的作用.有以下三种窗口: Applet窗口:Applet类管理这 ...

  4. 十. 图形界面(GUI)设计6.文本框和文本区

    在图形界面中,文本框和文本区是用于信息输入输出的组件. 文本框 文本框(JTextField)是界面中用于输入和输出一行文本的框.JTextField类用来建立文本框.与文本框相关的接口是Action ...

  5. 十. 图形界面(GUI)设计7.文本框和文本区的输入输出

    在GUI中,常用文本框和文本区实现数据的输入和输出.如果采用文本区输入,通常另设一个数据输入完成按钮.当数据输入结束时,点击这个按钮.事件处理程序利用getText()方法从文本区中读取字符串信息.对 ...

  6. 十. 图形界面(GUI)设计5.布局设计

    在界面设计中,一个容器要放置许多组件,为了美观,为组件安排在容器中的位置,这就是布局设计.java.awt中定义了多种布局类,每种布局类对应一种布局的策略.常用的有以下布局类: FlowLayout, ...

  7. 十. 图形界面(GUI)设计12.滚动条

    滚动条(JScrollBar)也称为滑块,用来表示一个相对值,该值代表指定范围内的一个整数.例如,用Word编辑文档时,编辑窗右边的滑块对应当前编辑位置在整个文档中的相对位置,可以通过移动选择新的编辑 ...

  8. 十. 图形界面(GUI)设计11.对话框

    对话框是为了人机对话过程提供交互模式的工具.应用程序通过对话框,或给用户提供信息,或从用户获得信息.对话框是一个临时窗口,可以在其中放置用于得到用户输入的控件.在Swing中,有两个对话框类,它们是J ...

  9. 十. 图形界面(GUI)设计10.菜单

    有两种类型的菜单:下拉式菜单和弹出式菜单.本章只讨论下拉式菜单编程方法.菜单与JComboBox和JCheckBox不同,它们在界面中是一直可见的.菜单与JComboBox的相同之处是每次只可选择一个 ...

  10. 十. 图形界面(GUI)设计9.列表和组合框

    列表和组合框是又一类供用户选择的界面组件,用于在一组选择项目选择,组合框还可以输入新的选择. 列表 列表(JList)在界面中表现为列表框,是JList类或它的子类的对象.程序可以在列表框中加入多个文 ...

随机推荐

  1. Introducing .NET Core

    At connect(), we announced that .NET Core will be entirely released as open source software. I also ...

  2. [转载]typedef struct和struct的区别

    typedef struct tagMyStruct {  int iNum; long lLength; } MyStruct; 上面的tagMyStruct是标识符,MyStruct是变量类型(相 ...

  3. 使用 MVC 5 的 EF6 Code First 入门 系列:建立一个EF数据模型

    这是微软官方SignalR 2.0教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第一篇:建立一个E ...

  4. oracle直方图

    直方图 当某列数据分布不均衡.为了让CBO能生成最佳的运行计划,我们可能须要对表收集直方图,直方图最大的桶数(Bucket)是254. 收集直方图是一个很耗时的过程,如无必要.千万别去收集直方图. O ...

  5. [翻译] 用 ObjectiveSugar 扩展NSArray NSDictionary NSSet NSNumber

    source - https://github.com/supermarin/ObjectiveSugar Look like a girl, act like a lady, think like ...

  6. tsort - 拓扑排序

    tsort - 拓扑排序 本文链接:http://codingstandards.iteye.com/blog/834572   (转载请注明出处) 用途说明 tsort命令通常用于解决一种逻辑问题, ...

  7. 【POJ】【3525】Most Distant Point from the Sea

    二分+计算几何/半平面交 半平面交的学习戳这里:http://blog.csdn.net/accry/article/details/6070621 然而这题是要二分长度r……用每条直线的距离为r的平 ...

  8. Same Tree leetcode java

    题目: Given two binary trees, write a function to check if they are equal or not. Two binary trees are ...

  9. Android 修改Camera拍照的默认保存路径

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  10. Kettle资源库采用SQLserver数据库需要注意的点

    Kettle开源ETL工具有着自己的元数据存储方式,可以分为两种 1:File 2:DB 文件存储我这里就不多说了,下面说一下在用SQLserver2008 R2作为资源库在创建的过程中遇到的问题 K ...