Qt编程:在Python或C++中更高效?

Mic*_*der 39 c++ python qt pyqt

试图潜入Qt的大部分时间,但尚未完成大型项目.目前正在使用Python,但我一直在想 - 在程序员生产力方面,这真的是更好的语言吗?

在大多数语言之间的比较中,Python是明显的答案,因为你不必混淆内存管理等等.

但是,Qt我不太确定.它为C++提供了足够的附加功能(从我可以看出)一行Python代码大部分时间大致等于一行C++代码(不包括类定义和结构组件等一些额外的东西).只要您坚持使用其类,Qt几乎可以为您完成所有内存管理,并为您在Python中找到的好容器提供等价物.

我一直喜欢静态类型的语言,但由于各种原因已经加入了Python的潮流.但是,如果程序员的工作效率与C++类似,我可能会以这种方式跳回来获得其他好处 - 更高效的代码和更少的用户安装依赖性.

思考?

sti*_*472 26

如果是其中一个,我实际上建议Python,尽管他是C++爱好者.使用Python代码,您不必担心MOC,可移植性,构建时间等.只需比较在C++中实现QT槽与PyQT或PySide相关的工作,例如我发现它不那么痛苦以这种方式处理小部件(更高的生产力).在需要增加性能的情况下,您仍然可以从Python调用C++代码.

如果您确实使用了组合,请考虑扩展Python而不是嵌入它.Python通常更适合嵌入C/C++代码,而不是嵌入到C/C++系统中.由于应用程序通常由性能关键代码组成的更平凡,非性能的关键代码组成,所以它往往更有意义,所以将应用程序主要编写为附加了C/C++函数的python应用程序就适合这种类型系统设计更好.


Anu*_*yal 23

我的意见(一般都尝试过C++和Python,特别是在Qt案例中):Python总是在"程序员生产力"和"安心"方面获胜.PyQt很好地代表了Qt,因此问题不是"Qt with Python"或"Qt with C++",一般来说python更有效率,除非你需要速度或python中没有的东西.

得出答案的最佳方法是首先用C++编写一个简单的项目,然后在python中编写一个相同的项目并进行比较,但是一旦你在Python中发现它很容易就可以对python进行编码了,所以尝试另一个项目,首先在Python中,然后在C++中.


Sys*_*ank 8

绝对是Python.

是的,人们会说没有理由,Python的效率更高.一些答案提到您不必重新编译.我会再给你一些细节

  1. Python是C++的一个抽象层,因此您可以用更少的代码来思考和表达您的设计.您的程序可能运行速度不快,但请确保您在代码中表达的速度更快.

  2. 最常见的情况是启动应用程序,加载某些文件,设置环境并打开对话框.你注意到按钮不起作用或它应该在哪里.现在这是大多数人关闭应用程序的点,在这里绑定一个插槽,在那里绑定一个信号......然后启动应用程序,加载文件,设置...使用python你只需编写代码并再次激活对话框,不是整个申请.我不了解你,但这种任务就是我大部分时间用Qt做的事情

  3. Python为您提供了C++没有的东西:内省.您可以浏览正在运行的程序,并在运行时提取有关其组件的信息.Qt部分地给你了.您有一个MOC层,其中元属性和元信息可以附加到Qt对象.可以反省Python程序的所有部分.很多人调试Python代码,或试图理解它的工作原理,这是有充分理由沉迷于此的

  • 关于2.)你只需在运行应用程序时重新加载代码 - 你在这里使用哪个IDE /编辑器?Pyhton如何支持"在线"重载? (2认同)

Ale*_* C. 5

使用Python,您无需构建项目。我猜这足以节省时间。而且Pyqt绑定很棒。使用pyqt绝对比使用qt / C ++效率更高。