尝试潜入Qt的时间很长,但尚未完成大型项目。目前正在使用Python,但我一直在想 - 在程序员生产力方面,这真的是更好的语言吗?
在语言之间的大多数比较中,Python是明显的答案,因为你不必混淆内存管理等等。
但是,Qt我不太确定。它为C ++提供了足够的附加功能(从我可以看出)一行Python代码大部分时间大致等于一行C ++代码(不包括类定义和结构组件等一些额外的东西)。只要您坚持使用其类,Qt几乎可以为您完成所有内存管理,并提供与您在Python中找到的好容器等效的内容。
我一直更喜欢静态类型语言,但由于各种原因已经加入了Python的潮流。但是,如果程序员的工作效率与C ++类似,我可能会以这种方式跳回来获得其他好处 - 更高效的代码和更少的用户安装依赖性。
思想?
答案 0 :(得分:25)
如果是其中一个,我实际上建议使用Python,尽管他是C ++爱好者。使用Python代码,您不必担心MOC,可移植性,构建时间等。只需比较在C ++中实现QT槽与PyQT或PySide相关的工作,例如:我觉得以这种方式处理小部件要小得多(更高的生产力)。在需要增加性能的情况下,您仍然可以从Python调用C ++代码。
如果您使用组合,请考虑扩展Python而不是嵌入它。 Python通常更适合嵌入C / C ++代码,而不是嵌入到C / C ++系统中。由于应用程序通常由性能关键代码组成的更平凡,非性能的关键代码组成,所以它往往更有意义,所以将应用程序主要编写为附加了C / C ++函数的python应用程序就适合这种类型系统设计更好。
答案 1 :(得分:22)
我的意见(一般都尝试过C ++和Python,特别是在Qt案例中):Python总是在“程序员生产力”和“安心”方面获胜。 PyQt代表Qt非常好,因此问题不是“Qt with Python”或“Qt with C ++”,一般来说python更有效率,除非你需要速度或python中没有的东西。
最好的方法让你得到的答案是首先用C ++编写一个简单的项目,然后在python中编写一个相同的项目并进行比较,但在编写项目后可能会偏向于python一旦你在Python中发现它很容易,那么也可以尝试另一个项目,首先在Python中进行,然后在C ++中进行。
答案 2 :(得分:8)
是的,人们会说没有理由,Python的效率更高。一些答案提到您不必重新编译。我会再给你一些细节
Python是C ++的一个抽象层,因此您可以用更少的代码来思考和表达您的设计。您的程序可能运行速度不快,但请确保您在代码中表达的速度更快。
最常见的情况是启动应用程序,加载某些文件,设置环境并打开对话框。你注意到按钮不起作用或它应该在哪里。现在这是大多数人关闭应用程序的点,在这里绑定一个插槽,在那里绑定一个信号......然后启动应用程序,加载文件,设置...使用python你只需编写代码并再次激活对话框,不是整个申请。我不了解你,但这种类型的任务是我大部分时间用Qt做的事情
Python为您提供了C ++没有的东西:内省。您可以浏览正在运行的程序,并在运行时提取有关其组件的信息。 Qt部分地给你了。您有一个MOC层,其中元属性和元信息可以附加到Qt对象。可以反省Python程序的所有部分。很多人调试Python代码,或试图理解它的工作方式,这是有充分理由沉迷于此
答案 3 :(得分:4)
使用Python,您无需构建项目。我猜这足够节省时间了。 Pyqt绑定非常棒。我使用pyqt比使用qt / C ++更有效率。
答案 4 :(得分:3)
您使用的是python还是C ++,更多地取决于您正在构建的应用程序,而不是Qt。如果您正在构建一个资源很多且需要大量资源(如CPU和内存)的应用程序,那么C ++将是一个更好的选择。另一方面,如果你的应用程序更多的是UI驱动,python在快速开发和丰富的库方面提供了许多其他好处。