代码之家  ›  专栏  ›  技术社区  ›  Herbert Sitz

问题:Python GUI编程的当前状态

  •  21
  • Herbert Sitz  · 技术社区  · 16 年前

    我最近做了一些工作,修改了一个使用wxPython小部件的pythongui应用程序。在过去的六、七年中,我断断续续地尝试了Python,但这是我第一次使用gui。我对Python gui编程的当前状态感到非常失望。我非常喜欢Python语言本身,它与我习惯的Delphi/ObjectPascal编程相比是一个有趣的变化,对于通用编程任务来说,这无疑是一个巨大的生产力提升。我希望一切都转到Python。

    我的结论是:虽然Python通过提高许多通用编码的抽象级别来提高生产率,但wxPython是几个抽象级别 降低 而不是Delphi可用的gui工具。最终结果:使用Delphi进行gui编程比使用Python进行gui编程要快得多,并且使用Delphi生成的ui更加精致和功能齐全。在我看来,说DelphiGUI编程在1995年比2009年使用wxPython进行python gui编程更先进并不夸张。

    我对其他pythongui框架做了一些调查,结果发现没有任何框架比wxPython更好。我还对wxPython的gui表单生成器做了一些简单的调查,这会让事情变得更好。但是根据大多数报告,这些解决方案是有缺陷的,即使是一个伟大的表单生成器也无法解决我对wxPython的主要抱怨,这只是因为它的功能较少,并且通常需要您以比我习惯于使用Delphi的VCL低得多的抽象级别进行gui编程。对建议的python gui开发解决方案的一些快速调查( http://wiki.python.org/moin/GuiProgramming )对于一个习惯于Delphi或.NET的人来说,这确实有些令人沮丧。

    最后,我有几个问题。

    第二,IronPython可能是一个方向吗?我尽量避免喝.NET Koolate,但也许IronPython给了我一个最终屈服的理由。即使如此,IronPython是否与WinForms完全集成,或者我是否需要表单本身由c#或vb.net支持?在我看来,SharpDevelop和MonoDevelop确实如此(即,IronPython不能用于设计时gui构建)。VS.NET是否将IronPython与gui构建完全集成?

    在我看来,如果为Python提供了一些出色的新gui构建解决方案,Python真的可以以类似于VisualBasic在20世纪90年代初的方式“接管世界”。只有这一次使用Python,我们才有了一个全新的快速、跨平台、高效的范例 开源

    9 回复  |  直到 16 年前
        1
  •  11
  •   Javier    16 年前

    似乎您的抱怨是关于wxPython的,而不是关于Python本身。试试pyQt(或者是qtPython?)

    但是,WxPython和PyQt都是Python绑定到C/C++(分别)库,它和原文件一样低(概念上)。

    但是,Qt远远优于wx

        2
  •  4
  •   Samir    16 年前

    RiverBank .

    PyQt现在正在绑定Qt4.4。

    使用PyQt,您将使用Qt设计器,并通过简单的命令行将.ui文件传输到.py文件。

    你会在网上找到许多关于PyQt的资源和来自不同社区的良好支持,甚至还出版了关于PyQt的书籍。

    另一个解决方案是带有JavaSwing的Jython,非常容易编写(特别是在JDK6下),但在internet上没有足够的资源。

        3
  •  3
  •   jjnguy Julien Chastang    16 年前

    您可能想看看Jython(JavaVM上的Python)。它与Iron Python非常相似,您可以使用.Net Kooled。

        4
  •  3
  •   Brandon    16 年前

    dabo 将wxPython编程置于更高的级别,就像您所寻找的那样。

        5
  •  2
  •   Van Gale    16 年前

    您可能需要使用.net或java Python,但请先检查一下,看看它是否满足您的要求:

    Kiwi

        6
  •  2
  •   ehdv    16 年前

    详细回答:Tkinter对于大型程序没有用处。以某种方式处理不同的片段总是会退化为杂耍(这在其他情况下永远不会发生),结果的输出看起来并不自然,也不特别优美。

        7
  •  0
  •   RSabet    16 年前

    尤其是wxPython社区对改进持开放态度,比如最近由 Andrea ,所以像许多社区项目一样,选择你最喜欢的项目,并在使用时加以改进。

        8
  •  0
  •   Kozyarchuk    16 年前

        9
  •  0
  •   tzot    16 年前

    Wax ,其目的是为wxWidgets创建一个更具python风格的界面,但它的开发似乎已经停滞。