在Python中开发GUI:Tkinter与PyQt

时间:2009-07-07 18:59:52

标签: python user-interface pyqt tkinter

如果有人想在Python中开发一个用户界面,可以选择哪一个:TkInter或PyQt?

我刚开始使用TkInter,我可以使用标签,按钮,文本框等基本小部件来获得一些简单的UI。只是想知道PyQt与TkInter相比有多好?

欢呼声

6 个答案:

答案 0 :(得分:61)

PyQt如果你正在开发任何严肃的东西,特别是你学到的东西将直接转换为在其他语言中使用Qt,如果你需要的话,Qt可能是目前最好的跨平台界面工具包。 / p>

只有两个真正的(潜在的)缺点:

PyQt仅在GPL下提供。这意味着如果您发布代码,则必须在兼容许可下,Nokia's GPL Exception条款下或商业许可下(需要花钱)。这与Qt形成对比,Qt现在可以在LGPL下获得。

默认情况下,Python安装不包含PyQt。您将不得不自己打包库。 (Ars Technica为Windows和OS X做了good article。)

答案 1 :(得分:34)

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

我调整了我的XP主题,现在我的应用程序皮肤相应。这创造了一种非常专业的外观,与Swing之类的工具包无法比拟。 API非常广泛,超越了像小部件这样的纯GUI。它支持数据库连接,打印,线程(我使用它,它就像一个魅力),...我甚至用它来生成PDF(不需要其他外部库)。我会推荐Mark Summerfield的书“Rapid GUI Programming with Python and Qt”,以帮助你提高速度。请记住,Qt附带了一个GUI构建器(Qt设计器),这是我使用过的最好的(我尝试了很多)。
我甚至使用这个构建器来创建模型以向用户显示(这很简单!)。

我在这里向其他2位开发者介绍过,并没有听到他们抱怨......

答案 2 :(得分:17)

我正在使用tkinter用于小型应用程序,界面简单。我非常喜欢它,即使缺少好的WYSIWYG编辑器可能会对更大的应用程序造成问题。

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

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

答案 3 :(得分:7)

PyQt非常容易学习,Qt的文档也适用于PyQt,还有.NET和Java的端口。所以,它是童话跨平台和跨语言。 你还在Eric IDE中集成了PyQt。

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

请参阅新的OpenSuSE安装程序,了解您可以使用它做什么。

答案 4 :(得分:3)

您可以使用Tkinter创建巨大的GUI。如果你喜欢尝试pytkgen模块,它有助于从JSON定义创建Tkinter GUI:https://github.com/tmetsch/pytkgen

答案 5 :(得分:1)

我使用PyQt - 跨平台,易于使用且可靠。

我使用TkInter非常轻,我无法找到一个使得tkInter比PyQt更好的观点。