推荐跨平台C ++ GUI和网络库

时间:2010-03-01 13:37:42

标签: c++ boost cross-platform wxwidgets

需要考虑的事项: - 使用方便 - 快 - 尽可能使用底层操作系统(如用于UI的wxWidgets)

我倾向于使用wxWidgets for UI和Boost进行网络化 - 他们如何与其他人比较?

8 个答案:

答案 0 :(得分:12)

我听到了关于GUI的qt的好消息

  

Qt是一个跨平台的应用程序   UI框架。使用Qt,你可以写   支持Web的应用程序一次   在桌面,移动和桌面上部署它们   没有嵌入式操作系统   重写源代码

答案 1 :(得分:3)

我已经很好地了解了前端的wxWidgets以及网络端的boost :: asio。

wxWidgets确实内置了网络类,但是你很快就遇到了它们,并且有一两个很大的局限性。如果你想留在wx世界,有一个名为wxCurl的软件包,它是一个很好的软件包(我在早期使用它),它将libCurl与一些wxWidgets idomatic C ++包装在一起。

在我之前的一个项目(一个网络/文件传输繁重项目)中,我们最终使用了boost :: asio,它的优势在于没有那么难的API,更容易看似设置libCRUL (虽然可能已经好转,现在已经好几年了),并且为我们提供了一个非常通用的网络核心(boost可以在任何地方编译,甚至命令行应用程序)

答案 2 :(得分:2)

对于GUI,我强烈建议使用Qt。它是一个非常强大的GUI框架,需要编写很少的代码行。它具有非常好用且易于使用的信号和插槽模型。

wxWidgets恕我直言,模仿MFC后模型非常糟糕。

网络:我建议去Boost.Asio非常强大和好看。但是,如果你 想要将网络集成到GUI主循环中,您可以尝试使用Qt类,但是我没有使用它们的经验。

答案 3 :(得分:1)

我历史上曾使用XVT,已被数千家公司商业化使用过。

答案 4 :(得分:0)

即使不是他们的第一个目标,QtwxWidgets也可以进行联网。

对于更多以网络为中心的图书馆,除了boost::asio之外,您还可以查看ACE(适应性沟通) 环境)或POCO

这些库之间的比较有already been discussed on stackoverflow

答案 5 :(得分:0)

boost :: asio似乎编写得非常好,并且有一个非常干净的API - 我仍在尝试了解它对无共享multithreaded TCP / IP的好坏。

您的其他选择可能是PocoACE。 Poco的套接字抽象非常幼稚 - 即,它只允许Poco的做事方式。我从来没有听说过有关ACE的任何好消息。

编辑嗯,我正在重新检查ACE,现在对我来说更有意义(在编写了一些网络应用程序之后) - 与ASIO相比,它可能适合我的需求。但是,这对你来说很可能有些过分。如果我的同伴发现了这一点,我会被回避直到时间结束。

答案 6 :(得分:0)

我们使用带有boost :: asio的wxWidgets取得了很好的成功,这两者都推荐用于桌面服务器开发。

答案 7 :(得分:0)

对于GUI,我可以推荐QT

适用于Networking ACE(自适应通信环境)或boost :: asio。