使用qt开发应用程序时,选择vs还是qtcreator?选择string还是qstring?

一、选择vs还是qtcreator

参考链接:http://bbs.csdn.net/topics/390466219

    一直有这个疑虑,使用qt开发桌面应用程序时,可以选择VS+qt,也可以选择qt creator。公司的老员工倾向于使用VS+qt,我个人因为之前没有用过vs,所以倾向于qt creator,查了一下这个问题,大家的意见如下:

1、由MFC转Qt的还是VS的环境用起来顺手,但是缺点就是槽的问题。

2、要是跨平台的话,qt creator好一点,在linux和windows下IDE界面样式都相同。VS只能在windows下使用。VS的默认文件编码方式是GBK,QtCreator是UTF-8,VS在文件的最后位置会插入一个不可见字符,QtCreaor不会。

3、VS调试方便,项目管理方便。项目大了以后,qt creator就会很吃力(未考证)。

    还是不知道该用哪个,建议跟公司保持一致,或者按自己爱好吧,个人觉得qt creator更容易入手一些,建议初学者使用。


二、选择string还是qstring

    参考链接:https://www.zhihu.com/question/22572053

    使用标准库函数能提高代码独立性,但是使用常用库函数更"接地气",例如标准库中的string和Qt中的QString(或者VC里的CString),他们都有类似的公用方法,但是我们在什么情况下进行相应的选择呢?就拿Qt来说吧,使用Qt库的时候,我们可以使用QString,读取文件、传入某些函数参数时候会更方便;但是也可以使用标准库的std::string,能让代码更具有独立性,以后移植到非Qt框架会更容易一些。

    假设题主的意思是:在写GUI程序的时候,如果GUI库和STL都提供了某个功能(比如容器字符串),应该如何在两个库之间选择? 我的做法是分层,比如分为frontend+core。开发core的时候只用STL,保证平台可移植性,并且编译为动态库。开发GUI frontend的时候与UI库紧密结合,尽量不用STL,和core交接的地方一律进行数据类型转换,不要顾虑转换开销。 BTW 这样的话一般在开发GUI frontend之前会先写CLI frontend,试验core的功能。

    如果你写的东西别人会用到,你不确定用到的人有怎么样的环境,用char*。如果你能确定使用者一定在C++环境下,用std::string。如果是自己撸个小工具什么的,不涉及到代码复用,那就QString。如果是大型工具,建议GUI和逻辑分离,不建议使用QString这种GUI库中的逻辑代码,char*,std::string都是更好的选择,boost可以做编码、易用性上的弥补。


你可能感兴趣的:(QT)