Qt用于非UI应用程序?

时间:2012-12-14 14:10:51

标签: c++ qt cross-platform

我希望将Qt用于非UI应用程序。它有可能在设备上运行,但将从桌面开始。 UI部分(我知道,我说非UI)将是一个带有HTML(5)/ AJAX的Web服务器。

我真的只会将Qt用于基本的跨平台内容,如线程,同步,序列化,资源(字符串,图像),国际化等。

对于像这样的东西,Qt或Boost以及自己创建跨平台层会更好吗?

Qt对于我需要的东西感觉有点沉重,但我想听听别人的经历。

3 个答案:

答案 0 :(得分:2)

是的,使用QtCore(以及其他非GUI模块)应该可以满足您的需求。在Boost和QtCore之间进行选择:两者都做得很好,有时也会交错。但并非总是如此。

Qt(Core)主要提供功能。 Boost主要提供实现功能的工具。例如,你在Boost中有模板和仿函数,而不是在Qt中。 OTOH,如果您需要消息泵等,您只能在Qt。

中找到它们

这实际上取决于你想要达到的目标。

答案 1 :(得分:2)

是的,在我看来完全没问题。我不会说Qt与Java相比很重,例如,它非常广泛地用于此类任务。 Qt非常强大,干净,简单,快速。我经常使用它,我不知道它有什么主要缺点。

答案 2 :(得分:1)

你提出的建议是完全合理的。 您希望跨平台使用许多功能(您提到的线程等)。 基本上你有很多选择,如下:

选项1(错误):编写自己的跨平台包装器。你将重新发明轮子,你可能无法像Qt那样解决尽可能多的跨平台案例和功能。此选项还意味着,无论谁继承您的代码,都必须处理您的自定义库,而不是一个支持良好且记录良好的易于访问的库。

选项2(不推荐):为您想要的每个功能使用单独的跨平台解决方案,例如线程,网络等。这意味着您(和您的继任者)必须保持与大量库的兼容性未来。

选项3(推荐):使用一个记录良好,易于访问的库,以满足您的所有需求。 Qt适合该法案。