What Python GUI APIs Are Out There?简单问题:
我不是在这里寻找一场宗教 war ,我只是想很好地处理 Python GUI API 方面的所有内容。 这是一个很好的清单。 我用过 Tkinter 和 wxPython。 Tkinter 非常基础,并且不使用本机小部件。这意味着 Tkinter 应用程序在任何平台上看起来都一样——这听起来很吸引人,但实际上,这意味着它们在任何平台上看起来都很丑:-/ 不过,它很容易使用。我在学习时发现 Thinking in Tkinter 非常有用,因为我以前从未做过任何 GUI 编程。但是,如果您熟悉框架和布局算法以及按钮和绑定等内容,则可以跳过该步骤。 您可以使用 Tix 增强 Tkinter(但请注意,Tix 不能很好地与 py2exe 配合使用)。还可以查看 Python Megawidgets,它使用 Tkinter 基础构建了一些更高级的控件。 最后,Tkinter 与 shell 配合得很好:你可以启动解释器,执行诸如 \\'import tkinter\\' \\'tk = tkinter.Tk()\\' 之类的操作,并以交互方式构建你的 GUI(它将是响应)。 (不过,我认为如果您使用 IDLE,这将不起作用) wxPython 的外观要好得多,并且附带了更多的控件。它是跨平台的(虽然在我的 Mac 上看起来有点挑剔)并且在每个平台上都使用本机控件。不过,这有点令人困惑。它还附带一个演示应用程序,展示了它的大部分功能,并提供了一个测试平台供您进行试验。关于 wxPython 的一些具体想法:
如果您对 Qt 有经验或兴趣,PyQt 非常好。 http://www.riverbankcomputing.co.uk/software/pyqt/intro PythonCard 真的很容易使用。这就是我推荐的。 这是他们的文章:
我找到这个链接很久了:http://www.awaretek.com/toolkits.html。它建议根据您的标准进行拍摄。对我来说,它一直建议使用 wxPython。无论如何,它会为您提供各种工具包的大量分数。适合我的可能不适合你。但它会根据您的标准为您提供所有 takeits 的评分,因此如果您由于某种原因不喜欢顶级工具包,您可以查看哪些最接近您的标准。 QT/GTK/WxWidgets(以前的 wxWindows)似乎是最成熟的跨平台 GUI 工具包之一。唯一的问题是没有安装 Python 的默认安装,因此您可能必须编译库。如果您想要无需安装即可运行的东西,那么请使用 TKInter,因为如前所述,它默认安装在 Python 中。 无论如何,我的标准是易用性为 9,文档/小部件成熟度为 10,安装基础为 10,gui 代码生成器为 5,windows/linux 的本机外观和感觉为 10,最后一个为 1 和 5二,我对 Mac OSX 不太感兴趣(即使这里有 10 也建议使用 wxpython)。 我将发表我的拙见,而不是发布您的选项列表: 我爱上了 wxPython。 在 Tcl 时代,我曾在 C 和 Tk 中使用过 Qt,但真正让我喜欢 wxPython 的是您使用它获得的演示。在演示中,您可以浏览作为框架一部分的所有不同的小部件框架等,查看源代码并实际查看它在运行时的外观。 我在构建和安装 Linux 版本时遇到了一些问题,但现在我有了它,我一直都在使用它。我曾将 wxPython 用于小型数据分析应用程序,并编写了几个与比较测试结果、合并源代码等相关的内部工具。 大多数 python GUI API 将封装最常见的 c/c GUI API。你有一个用于 gtk 的 python package器、一个用于 qt 的 python package器、一个用于 .NET 的 python package器等等。 所以这真的取决于您的需求。如果您正在寻找在 Linux、Mac 和 Windows 上绘制具有原生外观的小部件的最简单方法,请使用 wxPython(WX 小部件的 Python package器)。如果跨平台不是您的需求之一,其他库可能会更有用。 WX 在 Mac 上存在问题。 我看了一下这里,因为我想获得一个事件驱动的 GUI API 来在 Python 中做一些事情。作为 MatPlotLib 的一部分,我在我的 mac 上安装了 wx,但它不能正常工作。它不会从键盘输入。我已经在三个不同的 Mac 操作系统上安装了 3 次,虽然第一次可以正常工作,但另外两次我遇到了这个问题。 我在 Enthought 的发行版中使用这个版本,所以不需要安装。当我单独安装它时,有很多依赖安装,所以它是一个试用安装。 从我在这里阅读的内容来看,我会给 Tkinter 一个尝试,因为这需要简单且跨平台,但我想我只是与您分享以上内容。我喜欢 Mac OS 有很多不同的原因,但是 python 工具在 Windows(可能还有其他 Linux)上安装要容易得多。我只是想我会在这里给出一个 Mac 的观点。
EasyGui 网站 不存在用于 Python 的易于使用的 GUI 创建器。考虑到像 AutoIt 和 AutoHotkey 这样的小型脚本语言具有强大且非常易于使用的 GUI 制造商,这真是太神奇了。来吧,Python 追随者,你不能做得更好吗? 我更喜欢 PyGTK,因为我是一个 GNOME 人。使用 PyGTK 对我来说感觉很 Python。代码组织感觉一致,文档干净透彻,而且它是一个非常容易习惯的工具包(也许 Treeviews 除外)。 我喜欢 wxPython 或 Tk。 Tk 带有标准的 Python 发行版,因此您不需要安装任何其他东西。 wxPython (wxWigets) 看起来更强大,看起来更漂亮。它也可以很好地跨平台运行(虽然并不完美,因为它在不同的系统类型上使用了不同的底层图形 API) 有 python 特定的 gui-api,例如 kivy (successor or pymt)、pygui (基于 pyrex)、pyui 和 nufox,它们无法与 wxpython、pyqt、pygtk 和 tkinter 等更强大的工具包相比。 它们只是额外的可选工具。 它们唯一的独特之处在于它们是特定于 python 的 api,就像有 prima (perl-specific api) 和 shoes (ruby-specific api) 一样。它有助于我们理解,当 tk 是 api 的基于 tcl 的端口时(而其他是基于 c 和 c 的),那么这些 api 是专门为各自的三种脚本语言完成的。 在这些中,kivy 是最健壮的,而 pygui 的编码被提到非常类似于 python,pyui 最不健壮但值得尝试,所有这些都应该是可移植的,无论 python 或基于 python 的应用程序在哪里. 然后是jpype,它是一个可以和jython和pydev一起使用的工具包,它实际上是在python/jython-interface下定制的java的japi。 wxPython,我假设 PyGTK 也可以使用 wxGlade 来帮助您设计您将创建的大多数 UI。这是一个很大的优势。在您准备好之前,您不必学习如何手动编写 GUI。我直接从 wxGlade 制作了几个 GUI 程序,直到我对 wxPython 的工作方式感到足够熟悉以进行手动编码。 PyQt 有一个类似的图形布局设备,但我从来没有运气好让 PyQt 正确编译。也缺乏说明如何创建最终 Python 代码的教程和文档;我发现的许多文档都提到了 Qt 的 C 版本。 Tkinter 适合快速和肮脏的程序,但实际上,如果您使用 wxGlade,使用 wxPython 制作程序可能会更快。至少,您可以使用 wxGlade 向客户端显示程序的可视化表示,而不是花时间手动编写"虚拟"程序。 我已经使用 wxPython 几年了,我非常喜欢它。 wxPython 最棒的地方在于,在它运行的不同平台上,用户界面都感觉是原生的(在 Windows 和 Linux 上表现出色,但在 OS/X 上不那么好)。 API 缺乏一致性,但您很快就会习惯。 您可以查看 Testuff(无耻的插件,因为它是我自己的产品)以了解使用 wxPython 可以做什么(虽然我必须说,需要相当多的努力)。 |