C++/QT 新项目,求防雷指南

2014-10-23 07:23:23 +08:00
 ticat
先说一下本人的工作经历。
早年常年在通信设备制造商工作,写得都是DSP或者Linux上得应用程序。
近几年试图转行互联网,又写了几年erlang和Java,现在因为工作内容变化又在搞Android和iOS的东西。

最近有个新项目需要做桌面客户端,我们打算用QT来完成跨平台(win+mac)的需求。
但是由于常年不接触C++,尤其是桌面项目,请问这里面有什么可能的坑么?
比如C++的坑,那些feature做大型项目人员能力不足一定不能碰,那些feature是生产力神器一定要用。然后QT呢?

问题有点多,请大家不吝赐教。
5816 次点击
所在节点    Qt
15 条回复
typcn
2014-10-23 07:49:43 +08:00
qt 最新版好像有坑,就算去掉依赖项也需要几乎全部的 DLL 才能运行
skyline75489
2014-10-23 08:21:56 +08:00
Qt的坑还算少吧,Qt本身的开发现在也非常活跃,应该还是跨平台GUI开发的首选。感觉做Qt开发用不着很多C++高级特性,当然用也是可以的
superdong
2014-10-23 08:39:38 +08:00
delphi xe系列, firemonkey框架,原生跨平台方案
initialdp
2014-10-23 08:51:12 +08:00
qt的坑比较少,不过如果是开发产品,建议采用4.x的版本, 5.x的版本还不够稳定.

我个人觉得qt最好的东西就是ta的信号-槽机制!一定要善用! 其实我觉得c/c++定义那么多标准其实没有多少实用意义, 如果将qt这套信号-槽写入规范, 那才是大杀器.

gui方面建议还是使用传统的widget,qt quick虽然是以后的方向,不过还不如原有gui的灵活,风格上与系统原生界面也不太统一.

其他没什么, 都是c/c++的东西.
sqbing
2014-10-23 08:52:09 +08:00
尽量少用C++11新特性,不是所有编译器都能够完整支持的……
likid
2014-10-23 09:14:18 +08:00
跨平台呀,直接上 web 吧,不用折腾
ticat
2014-10-23 09:20:47 +08:00
@initialdp
多谢指点,5.x不够稳定主要表现在哪些方面呢?
jiaoew2011
2014-10-23 09:36:53 +08:00
node-webkit大法好
skydiver
2014-10-23 09:39:24 +08:00
@sqbing 恰恰相反应该多用c++0x特性,反正自己编译又不是开源项目……新特性可以大大增强可读性和维护性
initialdp
2014-10-23 10:27:13 +08:00
@ticat 主要体现在GUI方面. 在5.x中, qt quick提到了非常高的层面, 为此qt做了大幅改动. qt quick本身的思路是非常好的(用javascript和css来表现GUI), 如果您有一个强大的美工或者前端团队, 可以试试qt quick.

目前应该只有KDE5项目在大规模应用Qt5, 考虑到当年KDE4刚推出时遇到无数的坑, 可以推测KDE5刚推出时同样会有不少坑. 我觉得至少要等到KDE5推出并且基本稳定之后, Qt5才能算符合生产要求, 才能在生产环境中考虑应用Qt5.
semicircle21
2014-10-23 10:36:48 +08:00
首先, 握爪: DSP & Linux 经历, 我也是.
然后, 同样建议你学一下 c++ 11的特性, win+mac 平台都能支持的, 绝对提高生产力, 而且能改变代码的面貌.
现在编译器都号称支持 c++ 13 了, 所以用 11 的特性也不算太超前了.
hjc4869
2014-10-23 10:44:10 +08:00
@likid
@jiaoew2011
客户的RAM是要钱的。
ayang23
2014-10-23 16:24:26 +08:00
首先,你得把windows下那个20余M的依赖包缩小,还有windows下文件的编码问题,vc2012的编译器不认识Unicode,会界面乱码。这是我遇到的两个坑。
chaosgrass
2014-10-24 08:07:21 +08:00
某医疗设备项目尝试Win+Qt+CMake开发了一年多,4.8升级到5.3.1,32位升级到64,VS2010升级到2013,人数从1增到10,都是Qt新手,但还算平顺,还在持续开发中,可以交流。
sqbing
2014-10-24 16:10:32 +08:00
如果团队成员对C++11不排斥,并且项目使用的编译器版本接近最新,使用新特性也不成问题。
附上各版本的编译器对特性的支持情况 [http://www.italiancpp.org/wp-content/uploads/2014/03/CppISO-Feb2014-r1.pdf]

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/140900

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX