0

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

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

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

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

什么变体使用广泛的 GUI 工具包?吗?wx小部件?FLTK?其他的?他们为什么选择这种方法?

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

4

1 回答 1

1

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

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

  • 您必须完全了解这两个系统(X 和 Win32(为什么不是 Cocoa for OS X?))
  • 如果 X 在某处更改了一些实现细节,您将不得不更改代码以考虑到这一点,而如果您只使用顶级内容,则更改的可能性较小。
  • 可能存在大量重复代码(例如:处理 Win32 和 X 的复选框...)
于 2013-07-21T04:45:03.133 回答