2009-08-31 35 views
11

快速的问题。在Linux中使用Python创建GUI

我正在使用Linux,我想尝试使用Python制作GUI。我听说过类似Qt,GTK +和PyGTK的东西,但我不知道它们究竟是什么,它们之间的区别是什么。

他们如何与不同的DEs如GNOME,KDE,XFCE等一起工作有什么不同?是否有任何IDE允许您像Microsoft Visual Studio一样创建GUI(用于C#,C,Visual Basic等)?

或者我应该使用Python以外的其他语言来创建GUI应用程序?

回答

12

你的第一步应该是http://wiki.python.org/moin/GuiProgramming

一些工具包集成在一个环境比其他更好。例如PyQt,PyKDE(以及全新的PySide)将在KDE环境中更好地发挥,而GTK版本(包括WX-widgets)将更好地融合到GNOME/XFCE桌面。

你应该看看你想要定位的环境。您可以使用基本的便携式GUI套件,也可以与DE DE更深入地集成,比如使用集成密码管理器和配置文件解析器,这些解析器集成在特定的DE(如KDE或GNOME)中。

您还应该考虑您的选择规定的依赖关系,以及基本DE默认情况下的依赖关系。例如,KDE 3.X分支中的PyKDE具有一组不重要的依赖关系,而在4.X分支中,等离子体绑定使得Python GUI编程依赖性更少。

有几个IDE工具,在不同级别的完整性和成熟度。最好的办法是多试一试,看看最适合你的需求。

+4

哇..那里肯定有很多框架作品。我应该怎么弄清楚哪一个对我来说是最好的? – 2009-08-31 05:32:53

+2

@Baldur,你的主要目标平台是什么?对于Gnome,GTK(或wx,如果你想要Windows的合理跨平台能力,Mac的程度较低);对于KDE或其他窗口管理者来说,Qt(也给你高超的跨平台能力);仅适用于Mac,PyObj和可可;对于仅Windows,我建议IronPython(和Windows窗体......或其他任何最新和最好的.NET GUI产品;-)。 – 2009-08-31 05:44:11

+0

我猜我的主要平台是GNOME,所以我应该使用GTK? GTK能用Python工作还是你必须使用PyGTK,我有点困惑 – 2009-08-31 05:47:23

2

每个桌面环境都使用特定的工具包来构建它的组件。例如,KDE使用Qt,GNOME使用Gtk。

您对工具包的使用将取决于您所针对的是哪种类型的桌面环境,并且如果您想要定位多种桌面,请使用可用于许多桌面环境的工具包,如Wx小部件这将在Linux,Mac OS和Windows上运行。为了构建简单的GUI应用程序,Tkinter会这样做。

+0

Tkinter是否在很多DE上工作?为什么GNOME使用Gtk和KDE时都可以使用Wx小部件,看看Wx在几乎所有方面的工作原理?他们有多优秀有什么不同? – 2009-08-31 05:40:40

+1

因为Wx是丑陋的;-)尽管如此,我认为Qt在编程和视觉外观的组合方面很难胜出。但每个人都会有自己的看法。 – 2009-08-31 06:55:03

+2

一些人认为B比A好,有些人写D比A和B好,但由于D试图“适用于一切”,它比A和B复杂。最后,一些人坚持A或B,有人喜欢D,还有更多人继续发现E比A,B和D好。现在你有4个选择,ABD或E :) – Parthan 2009-08-31 07:02:58

4

我会避免使用其他语言来制作Python的GUI。

我对wxwidgets有了一切好运,wxwidgets是跨平台开发系统WX的python绑定。这很容易学习,而且非常强大。 wxwidgets的问题在于它并未默认安装,因此用户需要将其安装在希望运行应用程序的每个平台上。有关它的更多信息,请致电http://wxwidgets.org/

如果您希望人们能够在不安装其他任何软件的情况下使用您的程序,请使用Tkinter,Python自带的GUI系统。

我会避免GTK或KDE的Python绑定,除非您已经知道这些系统。他们还需要下载,并且他们似乎没有像wxwidgets那么多的采用。

+0

不,如果你编译它>:D – 2013-02-07 11:52:22

0

使用PyGTK的。与工具箱一样重要的是它的基础,在PyGTK中,你也可以使用GLib,它的文件系统抽象(python module gio)对Linux桌面非常重要,它的高级跨桌面功能如glib.get_user_data_dir()及其它应用程序框架工具,GObject及其属性和信号模型。