我希望将 Qt 用于非 UI 应用程序。它有可能在设备上运行,但会在桌面上启动。UI 部分(我知道,我说的是非 UI)将是一个带有 HTML(5)/AJAX 的 Web 服务器。
我真的只会将 Qt 用于基本的跨平台内容,例如线程、同步、序列化、资源(字符串,可能是图像)、国际化等。
对于这样的事情,Qt 或 Boost 并自己创建跨平台层,哪个会更好?
Qt对我需要的东西感觉有点沉重,但我想听听其他人有什么经验。
我希望将 Qt 用于非 UI 应用程序。它有可能在设备上运行,但会在桌面上启动。UI 部分(我知道,我说的是非 UI)将是一个带有 HTML(5)/AJAX 的 Web 服务器。
我真的只会将 Qt 用于基本的跨平台内容,例如线程、同步、序列化、资源(字符串,可能是图像)、国际化等。
对于这样的事情,Qt 或 Boost 并自己创建跨平台层,哪个会更好?
Qt对我需要的东西感觉有点沉重,但我想听听其他人有什么经验。
是的,使用 QtCore(和其他非 GUI 模块)应该可以满足您的需要。在 Boost 和 QtCore 之间进行选择:两者都做得很好,有时它们会交错。但不总是。
Qt(Core) 主要提供功能。Boost主要提供实现功能的工具。例如,您在 Boost 中拥有模板和函子,而不是在 Qt 中。OTOH,如果您需要消息泵等,您只能在 Qt 中找到它们。
这实际上取决于您要达到的目标。
是的,在我看来这完全没问题。例如,与 Java 相比,我不会说 Qt 很重,Java 非常广泛地用于此类任务。Qt 非常强大、干净、简单和快速。我经常使用它,我不知道它有什么主要缺点。
你的提议是完全合理的。您想跨平台使用许多功能(您提到的线程等)。本质上,您有很多选择,如下所示:
选项 1(不好):编写自己的跨平台包装器。您将重新发明轮子,并且您可能无法像 Qt 那样处理尽可能多的跨平台案例和功能。此选项还意味着继承您的代码的任何人都必须处理您的自定义库,而不是一个支持良好且文档齐全且易于访问的库。
选项 2(不推荐):为您想要的每个功能使用单独的跨平台解决方案,例如线程、网络等。这意味着您(和您的继任者)将来必须保持与大量库的兼容性。
选项 3(推荐):使用单个、文档齐全、易于访问的库来满足您的所有需求。Qt 符合要求。