CPython与Jython vs. IronPython进行跨平台GUI开发

Vla*_*hev 9 python user-interface ironpython jython cpython

我正在考虑为数字硬件设计制作某种实验性IDE.所以我无法决定选择巫婆平台.

我将使用带语法高亮的文本编辑器,一些矢量图形和许多选项卡式窗口.

我的目标:1.使用尽可能少的自定义组件来使用GUI.2.使其尽可能跨平台

(我已经知道CPython和Jython是跨平台友好的,但是IronPython + Mono呢?)

所以 - 问题是关于GUI - 我应该选择什么?

Ree*_*sey 9

IronPython与Mono是跨平台的 - 适用于Mono支持的任何平台,以及Mono支持的功能集(这几乎意味着Windows Forms得到了相当好的支持).但是,可以使用GUI工具包的其他选项,这些选项可以提供更好的"跨平台"功能,或者至少在非Windows平台上有更好的感觉.

CPython将取决于您选择的GUI套件.就个人而言,我发现使用PyQt的CPython是Python中最有用的跨平台GUI选项.它功能强大,功能丰富,效果非常好.

Jython会起作用,但我个人不喜欢GUI选项(但这是100%的个人偏好).


Gia*_*nni 5

我会说,如果跨平台是一个目标,请忘记IronPython.一个很多人恨它导致因此这将是太多的工作得到它在一些操作系统/分布运行依赖地狱.Jython也将受到影响,尽管程度较轻.


Hut*_*ut8 5

好吧,Mono没有附带大多数Linux发行版的基础.它也不是一个非常轻量级的依赖,我认为Java对于人们已经拥有的可能性要大得多.你打算在Mono上使用"Winforms"吗?如果是这样,并且您没有使用Winforms的经验,请阅读其他人的意见:-)其他.NET GUI工具包是WPF,遗憾的是Mono没有计划实施.

Jython也会更好,因为您可以使用SWT,它可以呈现本机小部件并轻松提供大量布局.或者你可以将Jython与Swing或其他任何东西一起使用 - 如果你喜欢丑陋,甚至可以使用AWT.

我非常喜欢wxPython(它可以与CPython一起使用,默认情况下在大多数发行版上使用),因为它在OSX,Windows和Linux中呈现了漂亮的本机小部件(我之前只看过Gnome小部件).到目前为止,wxPython是我使用过的最容易使用的GUI工具包 - 甚至是编程方式(即没有Glade或类似的布局).我也使用了SWT,我发现它非常好,而Swing,我个人并不喜欢它的外观和Winforms,这是一个噩梦,试图做简单的布局.

这是OS对解释器/语言运行时的存在的快速比较

  • CPython的
    • Windows - 可能没有安装,你必须使用你的软件安装非python安装程序:-P
    • Linux - 可能安装(Ubuntu,Gentoo和RedHat都有系统工具,用Python编写并在CPython上运行)
    • Mac - 预装在OSX上
  • Jython的
    • Windows - 根据我的经验可能安装,但它没有附带
    • Linux - 可能安装了,但更重要的是没有人会像Mono那样依赖它来讨厌你
    • Mac - 预装在OSX上("Mac OS X Leopard预装了J2SE 5.0,基于JDK 1.5.0_13_b05" - Apple的网站)
  • IronPython的
    • Windows - 可能运行正常,因为我敢打赌,如果他们有最新版本的Windows,大多数人至少拥有.NET 2.0
    • Linux - 可能没有安装 - 我在Linux上使用Mono的唯一应用程序是Rasterbator,它运行良好但我觉得奇怪的是将.NET放在Linux上
    • Mac - 见上文

我会首先选择一个GUI工具包,因为这会对用户体验和整体难度产生很大的影响(我会选择wxPython但SWT会紧随其后)然后考虑上面也可能作为决胜局.