代码之家  ›  专栏  ›  技术社区  ›  Paul Kelly

创建WxWidget应用程序的首选方法是什么:使用GUI工具或程序化代码?

  •  0
  • Paul Kelly  · 技术社区  · 16 年前

    我使用wxwidgets在工作中创建测试工具。我总是通过在代码中创建小部件来创建GUI。我没有尝试过任何可用的工具来帮助实现这一点。wxwidgets的其他用户通常如何创建其界面?如果你使用工具,你使用哪种工具?如果您使用一个工具,您认为使用该工具有哪些优点和缺点?

    4 回复  |  直到 16 年前
        1
  •  6
  •   Evan    16 年前

    我已经用过 wxFormBuilder 有两个原因:

    1. 它是跨平台的,我需要在Linux上工作的东西。
    2. 我是WXWidgets的新手,我不想花很多时间在构建GUI上。

    我认为它工作得很好,并且熟悉类似的GUI构建工具(Borland C++ Builder,JigoLo for Java,Delphi),我发现它很容易使用。

    如果你坚持使用WxFraseBu建器生成基类的范例,然后你就生成一个继承你的应用程序特定逻辑的类,绝对不是手工编辑C++代码WXFrimeBuudid生成的,那么它工作得很好,你可以很容易地再次更新和修改你的GUI在WXFrimBu建器中(又一次……)。

    优势:

    • 可以很快地以可视化的方式生成基本的GUI,而不必经常查找文档。
    • 不必做那么多的代码/编译/运行周期,只需确保您的GUI看起来像您期望的那样。
    • 基类/派生类范式可以合理地将GUI和业务逻辑代码分离开来。

    潜在的缺点

    • 免责声明: 我只使用了wxwidgets来创建非常简单、直接的gui,所以还没有真正将工具推向任何极限。
    • 如果您对GUI做了一些过于复杂的事情(可能表明您可能需要重新考虑您的方法),那么可能有时会遇到基类/派生类范式的阻碍。
    • 我曾经遇到过这样一种情况:当为一个操作系统编译时,我需要一个菜单项,而不是为另一个操作系统编译时。WXFormBuilder中没有逻辑来支持这一点。最后我抄近路总是创建菜单项,然后让我的派生类使它在操作系统错误时不可见(不理想)。

    我想,就是这样。

        2
  •  3
  •   Charlie Martin    16 年前

    我发现我经常使用一个工具在GUI上构建第一个切割,当它似乎在“最终”形式上聚合时,我开始手工重新编码/重构。

    不过,其中有些依赖于工具。我不是WXWidget的粉丝。

        3
  •  1
  •   T-Rex    16 年前

    你知道,这要看情况而定。 例如,如果我需要一些标准的行为,我通常为GUI使用对话框块,因为它是最快的方式。 如果我需要定制行为(例如,我当前的项目是跨平台媒体管理器,它的GUI支持皮肤),那么我在代码中做所有与GUI相关的事情。 对于自定义控件:

    • 如果控件执行某些特定于项目的操作,那么我将使用相同的项目文件(使用此项目中使用的其他窗体和对话框)在DialogBlocks中创建它。
    • 如果我的控件应该是可重用的(通用控件),那么我为它创建一个单独的项目,并在DialogBlocks中创建一个Keleton——如果可能,添加空的事件处理程序和类变量,然后在Visual Studio中手动编写逻辑。

    就是这样:

        4
  •  1
  •   aib    16 年前

    您可能想研究使用 XRC/XRS files .

    尽管我必须承认,我自己并没有这么做。使用wxformbuilder(它支持xrc,btw)生成静态GUI代码已经足够我所有(小规模)的GUI设计了。