适用于Windows的良好C ++ GUI库

我正在为C ++寻找一个好的Windows GUI库。 我认为理想的特征应该是:

  • 现代。 MFC,wxWidgets,Qt很久以前就开始了,他们不使用现代C ++特性和标准库。
  • 有一个丰富的控制与体面的功能。 几乎在任何地方放下HTML的能力都是我喜欢wxWidgets的快乐,当我不讨厌它时。
  • 开源。 这是必须的。 如果购买之后有来源可用,那么它被认为是好的。
  • 有某种形式的表单设计师。 是的,这将是伟大的。 经过多年与Delphi的合作,每次我必须手动指定控制尺寸时,我都会哭泣。
  • 免费用于商业用途。 但是如果一些图书馆真的很好,那么我会考虑购买它。
  • 跨平台。 这个规范只是一个决胜盘☺。 没有这个我可以生活。
  • 请为候选人建议您的想法。 每个答案请一个图书馆。


    我认为你写的Qt太快了; 它并没有太多地使用标准库,但这与过时而不是有着不同的优先级有关。 QT容器使用迭代器,模板算法等,但具有不同的迭代器模型; Qt迭代器指向元素而不是它们。 这使得前向和反向遍历是对称的,并且在遍历期间清除了用于插入和移除元素的一些边缘情况,尽管它效率稍低。 他们也提供STL风格的迭代器。 这是GUI库IMO的有效选择; 集装箱的性能不太可能成为关键因素。

    至于预处理器(moc),可以把它看作是知道如何读取C ++头文件而不需要自己的语言的IDL编译器。 它不会预处理直接编译的代码。 它只是生成一个额外的cpp文件,其中包含信号/槽回调的封送处理,当它们跨越线程边界并需要同步时可能会相当混乱。

    Qt是免费的,如果你可以释放你的源代码(即使是商业用途;有多少内部工具真的需要专有),并且如果你不能不合理地定价(没有单位版税或任何特别讨厌的东西)


    如果你正在寻找一个现代的C ++ GUI库,那么来自Adobe Source Library(ASL)的Adam&Eve是正确的(它主要依赖于Boost库)。

    我真正喜欢的是,布局的设计与代码完全分离。 布局定义可以位于外部文件中,以便用户可以在不重新编译程序的情况下更改布局。

    来自该网站的示例:

    layout clipping_path
    {
        view dialog(name: "Clipping Path")
        {
            column(child_horizontal: align_fill)
            {
                popup(name: "Path:", bind: @path, items:
                [
                    { name: "None", value: empty },
                    { name: "Path 1", value: 1 },
                    { name: "Path 2", value: 2 }
                ]);
                edit_number(name: "Flatness:", digits: 9, bind: @flatness);
            }
            button(name: "OK", default: true, bind: @result);
        }
    }
    

    这将产生:

    除此之外,ASL还有其他一些有用的实用程序类。

    编辑:但它(还)没有一个表单设计师。


    WTL是由ATL团队的Nenad Stefanovic创建的现代GUI框架。 它重量轻,但仍支持操作系统的所有现代功能。

    Windows模板库

    Windows模板库(WTL)是用于开发Windows应用程序和UI组件的C ++库。 它扩展了ATL(活动模板库)并为控件,对话框,框架窗口,GDI对象等提供了一组类。

    非官方文件存在于代码项目中。

    链接地址: http://www.djcxy.com/p/23309.html

    上一篇: Good C++ GUI library for Windows

    下一篇: AppCompat v7:21 Split Action Bar Broken?