我是一个新手,想使用Python开发Windows GUI应用程序。经过一些研究,我发现有两个选项:
- IronPython + .NET Framework
- Python + PyQt
请问哪个选项更适合Windows应用程序开发?哪个选项具有更多功能(例如数据库支持等)?
除了.NET支持之外,IronPython和Python之间是否有任何重大区别?哪个选项对我来说更好?
谢谢。
Patrick.L
我是一个新手,想使用Python开发Windows GUI应用程序。经过一些研究,我发现有两个选项:
请问哪个选项更适合Windows应用程序开发?哪个选项具有更多功能(例如数据库支持等)?
除了.NET支持之外,IronPython和Python之间是否有任何重大区别?哪个选项对我来说更好?
谢谢。
Patrick.L
根据我对PyQt和IronPython的使用(作为Qt和WinForms的接口),它们各有千秋。
两者都是基于底层平台的“绑定”。PyQt实际上是从Qt的API“自动生成”的,由于在Linux上被广泛使用,因此稍微更成熟一些。
IronPython则更深入一些,似乎用小的未填充间隙重新包装系统对象,cPython和.Net libs之间存在这种间隙(如gzip、zip、subprocess等)。
在这两种情况下,您需要查看Python到工具包中,并问自己是否喜欢该工具包。所有Python所做的就是将工具包的API重新打包到对象中。再次忘记Python方面。查看底层工具包API并问问自己是否可以接受它。
个人认为Qt API的C++特性太不符合Python风格,无法让人满意。C#和Python非常相似,如果从C#中删除花括号和类型声明,你甚至不知道它是C#还是Python。因此,对于Python程序员来说,基于C#的.Net API、代码和示例在MSDN和其他地方提供,几乎可以立即应用,只需要进行非常小的调整。
最后,更正确的比较应该是PyQt(cPython的Qt绑定)和Win32py(cPython的Windows ABI绑定)。IronPython几乎是在不同平台上重新发明了同一种语言,带有所有这些问题(缺少功能)。
PyQt是一个很好的库,但对于Windows系统来说,.NET是最好的选择。这是因为你可以在Python中使用任何C#可用的GUI控件。此外,除了WinForms,还可以使用IronPython创建外观漂亮的WPF应用程序。
主要区别在于功能方面,PyQt具有更多的跨平台功能,而.NET在Windows上明显更占优势。
我没有使用过IronPython与.NET,但是我已经编写了很多PyQt代码。从我的经验来看,PyQt是一个很棒的库。它是对Qt的非常好的绑定,而Qt是一个非常著名且广泛使用的库。
由于你是在编写标准的Python代码,所以你可以享受到Python标准库带来的许多功能,此外还有一些有用的Qt模块在PyQt中被导入。编写PyQt代码是非常高效的,GUI界面也很漂亮和响应迅速。而且你不能忽视移植性的好处:只需要最微小的修改,如果有的话,你就可以在Linux上运行这些程序,它们会正常工作。