2010-06-14 54 views
5

可能重复:
Is Python any good for GUI development?哪些多平台GUI框架可以用来编写Python应用程序?

我写了一个Python的GUI应用程序,并使其在Linux,Windows和Mac上运行。

我使用的框架是PyGTK的。 最终结果并不是很好:Mac上的应用程序看起来很糟糕,它在Windows上都不是“本地的”。此外,在Mac上,窗户的行为有时是错误的,模态对话框出现在主窗口下方。

我已经探索其他框架和我发现,一个端口可以是真的很难:

  • PyQt的它是巨大的,难以安装和Mac下分发;
  • PyGui很差:我至少需要表和树视图;
  • wxPython的明确规定,你必须使用一个自定义的Python构建适用于Mac
  • Tkinter的:没有检查,只是有这样的印象,这是过时的

我知道这个问题可能类似于https://stackoverflow.com/questions/394039/which-python-gui-framework,但在该线程中,可移植性问题并未真正考虑在内。

Windows和Mac是必须的,因为大多数我的用户有系统。

你也可以推荐一些书吗?

+0

看看这个:http://stackoverflow.com/questions/115495/is-python-any-good-for-gui-development – systempuntoout 2010-06-14 14:11:54

+0

你是怎么在Windows上安装PyGTK的? – phkahler 2010-06-14 14:21:17

+0

这显然不是重复的,它是一个非常有用的问题,即使标题可以稍微调整一下。这个问题是关于你编写Python GUI应用程序有什么选择。 – sorin 2014-03-22 14:22:58

回答

0

那么,其实我试过几个解决方案,我想我会继续wxPython

有一些值得注意的问题,首先我必须使用旧的2.5 Python。不过,我可以为Mac创建一个可移植的.app目录,并为Windows自动安装.exe(以及一对Makefile(以创建它们))。

的停靠尚未启动,但(实际工作和更紧迫的问题:-(到达)。

感谢所有谁替代的办法,但一些特定应用的问题做出这些选择没有真正吸引力。

  1. 我想我的应用程序只使用一种语言/技术,易于维护和部署,使混合闪存/航空等方法被废弃。
  2. 的应用也将离线工作,所以没有客户端/服务器可用方法
  3. 作为wxPython并不是最易于使用的框架,我过去一直在使用swing,而且实际上很难。也许在此期间更强大的工具可用,但我觉得wxGlade足以满足我的需求,而且国内唯一一个平台的观点也适用反对使用Java

但是我有我的观点,从所有的答复扩大。再次感谢

2

根据我的经验,在Python GUI编程Mac平台是永远不会快乐的体验。无可否认,我只使用过PyQT和PyGTK。窗口行为从未如此正确,并且小部件无法按预期工作。这就是说,这里是一个资源,列出,广告nauseum,Python的GUI工具包和相应的平台,他们的目标:

http://wiki.python.org/moin/GuiProgramming

+0

该页面没有被维护:例如它说PyGui它不支持Windows,而它却是。 – Iacopo 2010-06-14 14:09:15

+0

@lacopo - 可能没有得到很好的维护 - 但它仍然是一个有效和有用的资源,应该为探索可能的解决方案提供一个体面的起点。 – thetaiko 2010-06-14 14:18:13

+0

@lacopo:适用标准Wiki参数。如果你可以看到一个错误,请继续并修复它。 – Oddthinking 2010-06-15 15:53:03

0

我不认为这实际上是一个Python的问题。您对跨平台GUI工具包本身感到不满 - 对于您所问的内容,没有任何Python-y。也许你需要做的是找到一个你满意的GUI工具包,然后担心如何连接你的Python应用程序。

网络已成为首屈一指的元平台,对吗?你可以使用HTML/Javascript/Flash界面吗?

这样的事情?

http://www.adobe.com/devnet/flex/articles/flex_ui_print.html还是这个?

http://pyjs.org/(搜索睡衣 - 桌面当你到达那里)

+0

由于他使用python,因此需要一个python支持的工具包。尽管flex和AIR非常酷,并且跨平台运行得非常好(除非它非常重),但我认为这不能解决他的问题。 – MacAnthony 2010-06-14 15:50:43

+0

我有一个运行良好的库,应用程序正在打包。图书馆是非常pythonic,我不想改变它;我想扩展和改进,而不是从头开始重写。与PyGTK一起工作很快,在Linux下它确实很棒。 否则我会考虑Java/Swing。 – Iacopo 2010-06-14 15:56:50

+1

我链接到的flex文章是关于在Air界面中使用Python,通过Python的简单的XMLRPC进行通信。睡衣文章是关于在桌面上运行类似GWT的应用程序,用Python编写的。 我从来没有建议你改变语言,我建议你将UI平台从操作系统改为浏览器。 – gomad 2010-06-14 16:45:44

2

The "Code once, run everywhere" quest is a bogus one,就GUI的关注。如果你不想要一个看起来&的Mac版本感觉外国和蹩脚的,你将不得不为它开发一个单独的GUI层。

+0

我会低估这不是一个真正的答案。作为评论,它会得到我的投票,但不能作为答案。编码一次,到处跑就让我想起Flash失败:P – sorin 2014-03-22 14:25:50

0

也许你提供在您的评论的答案在我原来的答复:

你有没有考虑一个Jython/Swing的解决方案吗?为你的GUI和现有的Python代码使用Java来获得逻辑?

0

我必须说我为此使用PyQt。我开发的是Linux,Windows和Mac OS X.即使当我开始使用Mac OS X时也很痛苦(主要是因为我还需要scipy),现在好多了,PyQt4可以在没有安装的情况下安装问题。您只需要从www.riverbankcomputing.co.uk下载档案。

此外,另一种选择是在应用程序中包含PyQt4,并更新sys.path以指向PyQt4的安装位置。这就是我正在做的,以确保人们不需要安装任何东西来使用我的应用程序。

9

尝试Kivy,它是开源的&跨平台。

Kivy是一个开源软件库,用于快速开发配备新颖用户界面(如多点触控应用程序)的应用程序。

+0

kivy有很多问题 – timger 2017-08-04 14:59:48

相关问题