V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ticat
V2EX  ›  Qt

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

  •  
  •   ticat · 2014-10-23 07:23:23 +08:00 · 6094 次点击
    这是一个创建于 3691 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先说一下本人的工作经历。
    早年常年在通信设备制造商工作,写得都是DSP或者Linux上得应用程序。
    近几年试图转行互联网,又写了几年erlang和Java,现在因为工作内容变化又在搞Android和iOS的东西。

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

    问题有点多,请大家不吝赐教。
    15 条回复    2014-10-24 16:10:32 +08:00
    typcn
        1
    typcn  
       2014-10-23 07:49:43 +08:00
    qt 最新版好像有坑,就算去掉依赖项也需要几乎全部的 DLL 才能运行
    skyline75489
        2
    skyline75489  
       2014-10-23 08:21:56 +08:00
    Qt的坑还算少吧,Qt本身的开发现在也非常活跃,应该还是跨平台GUI开发的首选。感觉做Qt开发用不着很多C++高级特性,当然用也是可以的
    superdong
        3
    superdong  
       2014-10-23 08:39:38 +08:00
    delphi xe系列, firemonkey框架,原生跨平台方案
    initialdp
        4
    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
        5
    sqbing  
       2014-10-23 08:52:09 +08:00
    尽量少用C++11新特性,不是所有编译器都能够完整支持的……
    likid
        6
    likid  
       2014-10-23 09:14:18 +08:00
    跨平台呀,直接上 web 吧,不用折腾
    ticat
        7
    ticat  
    OP
       2014-10-23 09:20:47 +08:00
    @initialdp
    多谢指点,5.x不够稳定主要表现在哪些方面呢?
    jiaoew2011
        8
    jiaoew2011  
       2014-10-23 09:36:53 +08:00 via Android
    node-webkit大法好
    skydiver
        9
    skydiver  
       2014-10-23 09:39:24 +08:00 via Android
    @sqbing 恰恰相反应该多用c++0x特性,反正自己编译又不是开源项目……新特性可以大大增强可读性和维护性
    initialdp
        10
    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
        11
    semicircle21  
       2014-10-23 10:36:48 +08:00
    首先, 握爪: DSP & Linux 经历, 我也是.
    然后, 同样建议你学一下 c++ 11的特性, win+mac 平台都能支持的, 绝对提高生产力, 而且能改变代码的面貌.
    现在编译器都号称支持 c++ 13 了, 所以用 11 的特性也不算太超前了.
    hjc4869
        12
    hjc4869  
       2014-10-23 10:44:10 +08:00 via iPhone
    @likid
    @jiaoew2011
    客户的RAM是要钱的。
    ayang23
        13
    ayang23  
       2014-10-23 16:24:26 +08:00
    首先,你得把windows下那个20余M的依赖包缩小,还有windows下文件的编码问题,vc2012的编译器不认识Unicode,会界面乱码。这是我遇到的两个坑。
    chaosgrass
        14
    chaosgrass  
       2014-10-24 08:07:21 +08:00 via iPhone
    某医疗设备项目尝试Win+Qt+CMake开发了一年多,4.8升级到5.3.1,32位升级到64,VS2010升级到2013,人数从1增到10,都是Qt新手,但还算平顺,还在持续开发中,可以交流。
    sqbing
        15
    sqbing  
       2014-10-24 16:10:32 +08:00
    如果团队成员对C++11不排斥,并且项目使用的编译器版本接近最新,使用新特性也不成问题。
    附上各版本的编译器对特性的支持情况 [http://www.italiancpp.org/wp-content/uploads/2014/03/CppISO-Feb2014-r1.pdf]
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2529 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:10 · PVG 09:10 · LAX 17:10 · JFK 20:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.