我最近做了一些工作修改使用wxPython小部件的Python gui应用程序.我已经在过去的六七年中尝试过Python,但这是我第一次使用gui进行任何工作.我对使用Python的gui编程的当前状态感到非常失望.我非常喜欢Python语言本身,这是我习惯的Delphi/ObjectPascal编程的一个有趣变化,对于通用编程任务来说肯定是一个很大的生产力提升.我想转向Python以获取一切.
但是wxPython是Delphi的VCL或.NET的WinForms之后的一大步.虽然Python本身通过编程更高级别的抽象提供了良好的生产力增益,但wxPython的使用方式比VCL更低的抽象级别.例如,我浪费了很多时间试图让wxPython列表对象按照我想要的方式运行.只是添加可排序的列涉及几个代码密集的步骤,一个用于创建和维护提供实际排序顺序的阴影数据结构,另一个用于在列标题中显示图形排序方向三角形,以及还有一些我不记得了.所有这些容易出错的步骤都可以通过使用我的Delphi网格组件设置属性值来完成.
我的结论是:虽然Python通过提高许多通用编码的抽象级别来提高生产率,但wxPython的几个抽象级别比Delphi的gui工具要低.最终结果:使用Delphi进行gui编程比使用Python进行gui编程要快得多,而得到的带有Delphi的ui仍然更加精致和功能齐全.对我来说,似乎并不夸张地认为Delphi gui编程在1995年比使用wxPython的python gui编程更加先进.
我做了一些其他python gui框架的调查,看起来没有任何比wxPython好得多.我也对wxPython的gui formbuilders进行了一些简单的调查,这会让事情变得更好一些.但是大多数报道这些解决方案都是错误的,甚至一个伟大的formbuilder都无法解决我对wxPython的主要抱怨,这只是因为它具有较少的功能,并且通常要求你以比我低得多的抽象级别进行gui编程.以前用于Delphi的VCL.一些快速调查建议的python gui-dev解决方案(http://wiki.python.org/moin/GuiProgramming)对于习惯使用Delphi或.NET的人来说实在有些令人沮丧.
最后,我有几个问题.
首先,我错过了什么吗?是否有一些Python的gui开发解决方案可以与VCL或WinForms编程进行比较?我不一定关心它是否与Delphi的VCL不相符.我只是在找同一个联盟的东西.
第二,IronPython可以成为前进的方向吗?我大多试图避免喝.NET koolaid,但也许IronPython让我有理由最终放弃.即便如此,IronPython是否与WinForms完全集成,或者我需要让表单本身由c#或vb支持.净?在我看来,SharpDevelop和MonoDevelop就是这种情况(即,IronPython不能用于设计时间的gui构建).VS.NET是否将IronPython与gui-building完全集成?
在我看来,像Python一样可以"接管世界"的方式类似于Visual Basic在1990年代早期的方式,如果有一些精彩的新gui构建解决方案出现在Python中.只有这次使用Python,我们才能拥有全新的快速,跨平台和开源 gui编程范例 .企业不会吃掉它吗?是的,我知道,网络应用程序是当今最重要的事情,所以一个伟大的Python-gui解决方案不会创造VB曾经做过的同样的革命.但是我没有看到gui编程消失,我想要一个很好的现代,开源,高级解决方案.
似乎你的抱怨是关于wxPython,而不是关于Python本身.试试pyQt(还是qtPython?)
但是,wxPython和pyQt都只是对C/C++(分别)库的Python绑定,它与原始文件一样(概念上)低级.
但是,Qt远远优于wx