Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
问题:Python GUI编程的当前状态_Python_User Interface - Fatal编程技术网

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

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

我最近做了一些工作,修改了一个使用wxPython小部件的pythongui应用程序。在过去的六、七年中,我断断续续地尝试了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更加精致和功能齐全。在我看来,说DelphiGUI编程在1995年比2009年使用wxPython进行python gui编程更先进并不夸张

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

最后,我有几个问题

首先,我是不是遗漏了什么?是否有一些Python gui开发解决方案可以与VCL或WinForms编程相比较?我不一定在乎它是否符合德尔福的VCL标准。我只是想找些和你一样的东西

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


在我看来,如果为Python提供了一些出色的新gui构建解决方案,Python真的可以以类似于VisualBasic在20世纪90年代初的方式“接管世界”。只有这一次使用Python,我们才有了一个全新的快速、跨平台和开源gui编程范例。难道公司不会吃掉它吗?是的,我知道,web应用程序是当今的主要焦点,所以一个伟大的Python gui解决方案不会像VB一样带来革命。但我不认为gui编程正在消失,我想要一个漂亮的现代、开源、高水平的解决方案。

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

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


但是,Qt远远优于wx,您可能想看看Jython(javavm上的Python)。它与Iron Python非常相似,您可以先使用.Net Koolate。

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


你说得对,wxPython绝对可以改进。但我认为罗宾·邓恩到目前为止做得很好,现在仍然是


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

PyQt是诺基亚Qt SDK的绑定,PyQt本身由一家名为的公司提供

如果许可证对您不重要,您可以在GPL下使用PyQt,或者您将为商业许可证支付一些费用

PyQt现在正在绑定Qt4.4

Qt不仅仅是GUI,它是一个完整的C/C++SDK,可以帮助实现网络、xml、媒体、数据库和其他功能,PyQt将所有这些都传输到python

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

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

<> P>许多建议认为,河岸别无选择,只能发布下一版本,它将取决于LGPL下的QT 4.5,我们正在等待:
另一个解决方案是带有JavaSwing的Jython,非常容易编写(特别是在JDK6下),但在internet上没有足够的资源

我们对使用Python非常满意