c++ - 使用 native C++ Qt 比 PyQt 有什么优势

标签 c++ python qt qt4 pyqt

<分区>

我想在 Qt 中开发,并且我已经了解 Python。我正在学习 C++,那么与 Python 相比,用 C++ 编写 Qt 有哪些优势? C++好像比较复杂,好像也没什么收获。

最佳答案

What is the advantage of using the native C++ Qt over PyQt

速度/功率/控制。

PyQt 应用程序仍然需要 python。 C++/Qt 应用程序编译为 native exe。通过使用 C++,您将可以访问 python 中不可用的第 3 方库,此外,您将消除“中间人”——位于您的程序和 qt dll 之间的层,并且有可能获得更好的性能。例如,我不会用 python 编写归档器或 mp3 解压缩器,尽管它当然可以完成。

然而,这是有代价的——C++ 没有垃圾收集器,更复杂,开发“更慢”(编译时间),需要多年才能掌握,只有当你的瓶颈出现时,你才能获得更好的性能在解释器中(即脚本语言开销)。 IE。 C++ 以更大的责任和更长的开发时间为代价提供了更多的功能。如果您不需要它,那么您就没有理由坚持使用 C++。

语言的选择取决于您的应用/情况和您的个人喜好。如果您需要尽快制作应用程序或制作模型,那么使用您熟悉的语言是合理的。如果您有严重的性能问题,那么聘请熟练的 C++ 程序员来完成这项工作是合理的 - 制作 native 应用程序、分析它、优化等等。

请注意,语言是一种工具。如果您只是因为喜欢这种语言而想在所有事情上都使用您的语言,那么您的工作效率就很低。

--编辑--

就我个人而言,我不会将 python 用于需要长期维护的大型应用程序。然而,这是因为该语言与我的思维方式并不完全兼容(依赖墨菲定律)并且(因此)我对此并不满意。有不同想法的人可能更喜欢 Python,甚至可能认为 C++ 限制太多。

另一件事是,根据我编写 Blender 插件和各种 python 脚本的经验,会出现一些严重的性能开销,因为语言是脚本化的,而且非常繁重的列表/映射/数组操作可以在 C++ 中免费快速执行在 python 中可能需要 5x..10x 倍的时间。有些人可能坚持认为这可以修复,但是,这种“修复”的成本可能会抵消使用脚本语言带来的好处。不管我的偏好如何,我仍然使用 Python 来制作需要运行多个实用程序的实用程序脚本,拆分/拼接/解析它们的文本输出并用它做一些事情(C++ 在这种情况下不是很好),我仍然会在必须可扩展的程序中提供 Python 绑定(bind)(假设 Lua 不好)。

最终归结为选择最合适的工具——如果与 Python 相比,C++ 不能给您带来任何好处,那么就没有理由切换。

关于c++ - 使用 native C++ Qt 比 PyQt 有什么优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10132427/

相关文章:

c++ - 从 QByteArray 使用 libjpeg 加载 jpeg 图像纹理

c++ - 如何检查应用程序本身的校验和?

c++ - 哪个 QT 版本/构建更稳定?

python - 在django中扩展用户模型后,我无法登录

c++ - QTabBar滚动条分离

c++ - 将整个 QAbstractTableModel 传递给 QML

c++ - 连接多个字符

c++ - 无法使用 npapi 获取 DOM 窗口

python - 从字典创建数据框 - python

php - Unicode编码错误: 'ascii' codec can't encode characters in position 360-362: ordinal not in range(128)