用于WPF的C ++模拟

时间:2011-08-05 02:00:22

标签: c++ wpf cross-platform

所以我最近有点愚弄WPF,我必须说我真的很喜欢这个主意。我喜欢整个框架,从GUI到管道。

然而,尽管我喜欢管理的土地,但我也喜欢我的原生代码。所以我想知道C ++存在哪种类型的库,它们捕获了WPF各个部分的本质。我不是在寻找互操作解决方案,也不是在寻找Managed C ++或C ++ / CLI解决方案,而是纯粹的C ++解决方案。

现在,我不期望为C ++找到WPF的“副本” - 我不希望它存在,我也不需要它。相反,我希望不同的库可以捕获所需概念的子集。我特别感兴趣的是

  1. 基于小部件的GUI的硬件加速图形(通过DirectX或OpenGL,最好是后者)

  2. GUI设计的声明性语言(最好是XML方言)

  3. 数据绑定

  4. 决议独立性(不太重要)

  5. 为了说一下我的推理,我想自己实现这样一个库,它捕获了我已经开始研究的特定模型。在锁定我的设计之前,我正在寻找更多灵感和有用的资源。该库旨在实现跨平台,因此对跨平台创意的参考将是很好的,但并非严格必要,因为我通常能够将内容转换为跨平台解决方案。

    最后,虽然我正在编写一个C ++库,但C ++的想法很棒,但我对任何母语的想法持开放态度。

    提前感谢您的帮助。

2 个答案:

答案 0 :(得分:10)

  1. 实际上没有这样的东西。无论如何都不是跨平台的。 Direct2D工作得相当好,但显然只有Windows。 NVIDIA最近放弃了OpenGL的这种“路径”扩展,它在基本功能上类似,但它仅限NVIDIA(并且在Mac OSX上不可用)。开罗有一个OpenGL后端,但我不知道它有多好。如果Mozilla在Windows上倾向于使用开发,而不是D2D,那就不是那么好了。
  2. 许多GUI工具包都有某种形式的语言来制作GUI。 Qt有一个预先编译成C ++的文件。
  3. 不是我所知道的。数据绑定需要某种形式的反射(WPF样式的数据绑定确实),而C ++没有本机支持反射。因此,在开始使WPF样式的数据绑定工作之前,您需要实现某种反射。
  4. 伴随着#1。或多或少,因为任何基于GPU的渲染器都能够以任意分辨率运行。
  5. 我喜欢C ++,但老实说,这种事情最适合更高级别的语言。缺乏基于语言的反射支持将使实现数据绑定成为一个巨大的痛苦。然而,您可以在C ++中实现低级“渲染东西到区域”和基本窗口/事件管理,然后将其暴露给数据绑定和此类工作的脚本语言。这样,您可以在需要的地方获得本机代码速度,但是脚本语言的多功能性和反映可以处理GUI及其相关数据。

答案 1 :(得分:3)

我已经晚了几年,但为了其他人阅读这个问题的好处:你正在寻找Qt Quick / QML:

http://qt-project.org/doc/qt-4.8/qml-intro.html

http://doc.qt.io/qt-5/qtqml-cppintegration-topic.html