Qt: Qt类与标准C++的区别

10
大量功能在标准C++和Qt之间重复。有时看起来很合理,但很多时候显得愚蠢。就好像我感觉自己在学习已经掌握的东西,比如使用QFile。
此外,如果我完全按照Qt的方式进行编码,现在想要移出Qt框架,重写代码将非常繁琐。另一方面,我喜欢Qt,因为它提供了一些库,否则我需要自己去寻找,例如Webkit、数据库连接、DBus等。
你建议我采用标准C++和Qt混合的方式,还是完全采用Qt的方式?

1
稍微相关的问题:https://dev59.com/q3I-5IYBdhLWcg3wy72n - Greg S
2个回答

7
由于C++中没有GUI,您应该将GUI代码与实际代码分离。
在您的QT GUI抽象实现中,可以自由使用QT代码。
此外,您还可以编写Wx / Quartz GUI抽象,而不会影响实际代码。
在实际代码中(即工作所在的地方),坚持使用标准内容(或几乎是标准的跨平台库(boost))。有人可能会争辩说QT也是跨平台的。只需记住,在此处使用库将紧密耦合您的代码与库,因此在稍后删除它将是非常棘手的(请参见有关从遗留应用程序中删除Rouge Wave的先前问题)。

3

我在std::中使用所有的集合类,这对于非Qt开发人员更清晰,且更具可移植性。

字符串和字符串列表我使用Qt内置的,在一个纯粹的Qt函数中执行GUI相关操作,但除此之外我使用std::String。虽然Qt的.arg()格式化比stringstream要好得多。


Qt提供的容器具有更轻的占用空间,因为它们利用隐式共享,此外它们还提供了Java风格的迭代器。因此,我建议使用它们而不是STL的容器。 - Ihor Kaharlichenko
有一个boost::format http://www.boost.org/doc/libs/1_55_0/libs/format/doc/format.html,它提供了一种很好的输出方式。 - rriemann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接