2009-07-07 181 views
49

如果你想在Python中开发一个用户界面,你可以选择:TkInter还是PyQt?在Python中开发图形用户界面:Tkinter vs PyQt

我刚刚开始使用TkInter,并且我能够获得一些简单的UI,使用标签,按钮,文本框等初级小部件。只是好奇地想知道PyQt与TkInter相比有多好?

欢呼

+3

另外,还要注意有提供给你相当多的选择,除了简单的Tkinter和PyQt的。 wxPython是立即想到的,但在http://wiki.python.org/moin/GuiProgramming上有更完整的列表,以及http://www.python上列出的更常见的GUI软件包.org/doc/faq/gui /。 – esm 2009-07-08 02:31:17

回答

43

PyQt的,如果你要开发什么严重的,尤其是当事情你学习会直接转换成其他语言使用Qt工作太多,如果你以往任何时候都需要,而且Qt是可能是最好的跨平台接口工具包现在可用。只有两个真正的(潜在的)缺点:PyQt仅在GPL下可用(意味着您的代码也必须在兼容许可下提供,或者在Nokia's GPL Exception的条款下(如果您释放它) (这花钱)。这与Qt相反,现在可以在LGPL下使用Qt。默认情况下,Python安装中也不包含PyQt - 你将不得不自己打包库。 (Ars Technica的做它适用于Windows和OS X.有good article)我使用tkinter小型应用用简单的界面

+3

对于开放源代码,PyQt向GPL授予一个例外,指定您可能使用的许可证列表。这个例外的全文可以在这里找到,一个副本包含在PyQt源码包中。 http://www.riverbankcomputing.co.uk/software/pyqt/license http://doc.trolltech.com/4.4/license-gpl-exceptions.html – sunqiang 2009-07-07 20:06:41

+0

好,谢谢。我加了一张纸条。 – 2009-07-07 20:14:20

+13

诺基亚已经开始构建一个名为PySide的库,它提供了与PyQt几乎相同的功能,但是在LGPL下。它现在只能在基于NIX的系统上使用。但是你几乎可以在你的导入中将“PyQt4”与“PySide”交换,并且几乎都可以工作。 http://www.pyside.org – James 2009-11-28 20:07:53

12

。我非常喜欢它,即使缺少好的WYSIWYG编辑器可能会成为更大应用程序的问题。

对于大型应用程序,PyQt可能是更好的选择。它有一个非常好的屏幕设计师,但许可可能是一个问题。

最后,wxPython可能是一个很好的选择,因为它没有这些缺点。

24

PyQt是我们现在的主要GUI工具包,经过1年的开发,我不想回到其他任何东西。它稳定,成熟,跨平台,完全原生。即使是系统对话框(例如打开文件)也是您的操作系统使用的对话框。

我调整了我的XP主题,现在我的应用程序皮肤相应。这创造了非常专业的外观,与Swing等工具箱无法比拟。这个API非常广泛,超越了纯粹的GUI,比如小部件。它支持数据库连接,打印,线程(我使用它,它像一个魅力),...我甚至使用它来生成PDF的(不需要其他外部库)。我会推荐马克·萨默菲尔德的书,虽然'Rapid GUI Programming with Python and Qt'让你加快速度。请记住,Qt带有一个GUI构建器(Qt设计器),这是我用过的最好的(我尝试了很多)。
我甚至使用这个构建器来创建模型以向用户展示(这很简单!)。

我把它介绍给其他开发人员2这里没有听到他们抱怨......

1

我用PyQt的 - 跨平台,易与可靠的工作。

我用TkInter非常轻,我找不到使得tkInter更好的一点,然后PyQt。

3

PyQt真的很容易学习和Qt的文档也适用于PyQt也有端口到.NET和Java。所以,它是仙子的跨平台和跨语言。 你也有PyQt集成在Eric IDE

对CSS样式的支持也非常出色。

见新OpenSuSE的安装程序,看看你可以用它做什么。