什么是GUI工具包更好的架构?

时间:2013-07-20 07:37:38

标签: user-interface x11

我正在开发一个轻量级的GUI工具包。它设计为易于在X11(xlib),Win32以及可能具有非常基本的GUI支持的其他系统中移植。

据我所知,主要有两种架构:

  1. 使用操作系统提供的Windows服务 - Linux中的X11和Win32中的普通窗口。在这种方法中,每个控件都是与其父控件相同的窗口对象。它接收来自操作系统的事件并处理它们,有自己的绘画表面等。

  2. 仅将操作系统提供的窗口用于顶级窗口 - 主应用程序窗口,对话框等。所有子窗口都只是绘制在其父窗口的表面上。在这种情况下,工具包必须管理父子关系,事件仅由主窗口接收,并且必须被分派到控件。

  3. 哪种变体使用广泛的GUI工具包? Qt的? wxWidgets的? FLTK?其他?他们为什么选择这种方法?

    两种变体如何与结果GUI工具包的大小和速度相关?

1 个答案:

答案 0 :(得分:1)

我还不能发表评论,但我强烈建议不要立即进入X,或多或少两年Wayland(或Mir,也许)将成为Linux的主要渲染经理。

我认为第一种方法的主要问题是:

  • 你必须完全了解这两个系统(X& Win32(以及为什么不是Cocoa for OS X?)
  • 如果X在某处更改了一些实现细节,则必须更改代码才能将其考虑在内,而如果您只使用顶级内容,则不太可能更改。
  • 可能有大量代码重复(例如:处理Win32和X的复选框......)