Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.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
C++ 使用本机C++;PyQt上的Qt_C++_Python_Qt_Qt4_Pyqt - Fatal编程技术网

C++ 使用本机C++;PyQt上的Qt

C++ 使用本机C++;PyQt上的Qt,c++,python,qt,qt4,pyqt,C++,Python,Qt,Qt4,Pyqt,我想用Qt开发,我已经知道Python了。我正在学习C++,所以在Python上用C++编程QT有什么好处?C++看起来更复杂,而且似乎没有多少好处。 < P>如果你计划发布你的应用程序,那么比直接依靠你的最终用户先安装Python和PyQt更容易提供一个包含的编译的可执行文件。但这可能是您的考虑因素,也可能不是。简而言之,我认为除非您有很强的性能要求,否则您应该坚持使用Python。另外,正如格雷戈提到的,Python程序比C++更便于移植。 我喜欢C++,但现在,对于大多数项目,我最喜欢的是

我想用Qt开发,我已经知道Python了。我正在学习C++,所以在Python上用C++编程QT有什么好处?C++看起来更复杂,而且似乎没有多少好处。

< P>如果你计划发布你的应用程序,那么比直接依靠你的最终用户先安装Python和PyQt更容易提供一个包含的编译的可执行文件。但这可能是您的考虑因素,也可能不是。

简而言之,我认为除非您有很强的性能要求,否则您应该坚持使用Python。另外,正如格雷戈提到的,Python程序比C++更便于移植。 我喜欢C++,但现在,对于大多数项目,我最喜欢的是Python,而不是java。但是,如果我正在编写游戏或图形应用程序,我可能会考虑C++。

在PYQT

上使用本机C++ Qt的优点是什么? 速度/功率/控制

PyQt应用程序仍然需要python。C++/Qt应用程序编译为本机exe。通过使用C++,你可以访问Python中无法使用的第三方库,而且你可以消灭位于程序和QT DLL之间的“中间人”层,并且可能会获得更好的性能。例如,我不会用python编写archiver或mp3解压器,尽管这肯定是可以做到的

但是,代价是C++没有垃圾收集器,更复杂,有“慢”的开发(编译时间),需要几年才能掌握,只有当你的瓶颈在解释器(脚本语言开销)中时,你才能获得更好的性能。即C++以更大的责任和更长的开发时间来提供更多的能量。如果你不需要,那么你就没有理由坚持C++了。 语言的选择取决于您的申请/情况和个人喜好。如果您需要尽快制作应用程序或模型,那么使用您熟悉的语言是合理的。如果你有严重的性能问题,那么雇佣熟练的C++程序员来做这个工作是合理的。 请注意,语言是一种工具。如果你只是因为喜欢你的语言而想在任何事情上使用你的语言,那么你的工作效率就不高

--编辑--

就我个人而言,我不会将python用于我希望长期维护的更大的应用程序。然而,这是因为语言与我的思维方式不完全一致(依赖墨菲定律),因此我对它感到不舒服。不同的人可能会对Python感到更舒服,甚至可能会认为C++过于严格。p>

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


最后归结为选择最合适的工具——如果C++与Python相比,不会给你带来任何好处,那么就没有理由切换了。p> C++优化了机器速度

Python优化了程序员的速度

C++相对来说比较冗长:表达每个想法需要更多的单词。代码中的bug/Lines大致是一个常量,因此简洁性很重要

C++的内存管理有时是手动的,这可能意味着奇怪的运行时问题,包括SEGFULTS和内存泄漏。Python将其从程序员手中解放出来并使其自动化


< GUI很少关心其实现语言的速度——主要问题是终端用户可以快速地键入和点击。

与C++一般使用Python的原因相同……你希望你的用户在多个平台上还是单个的?我认为格雷戈的观点是它不太容易用Python来移植。这就是我的经历。我为一些同事编写了PyQT程序。大错误。我现在经常被要求帮助他们安装PyQT。现在,如果他们中的任何一个升级到OSXLion并出现问题,我就会把他们的机器扔出窗外。如果我用C++做了,这可能就没什么问题了。我猜我假设在多个平台上构建同一个C++程序的痛苦不仅仅是安装Python和PyQT。但是如果所有的用户都在一个平台上,那么C++肯定听起来更好。它可能还与使用您的程序的人数成比例。你需要服务的人越多,你就越希望能给他们提供所有不需要安装的二进制文件。如果您只将程序分发给少数很少需要服务的人,那么Python的开发时间奖金可能占主导地位。我的经验完全相反。使用py2app和py2exe,我可以轻松地将我的应用程序作为Windows和Mac的二进制文件进行部署,并且在部署/依赖项方面没有任何问题。@digivampire很酷,它将为我的下一个项目提供py2app和py2exe的机会。你对Linux有什么建议?我可能会用py2exe之类的东西编译可执行文件。哇,你在PyQt上试过吗?(我没有)生成的可执行文件将相当大。定义相当大。早在1995年,10MB的开销可能是“巨大的”,但今天它是可笑的。今天,来自应用程序发行版