wxWidgets:Sizer 概览
wxWidgets:Sizer 概览
由wxSizer类及其在 wxWidgets 类层次结构中的后代表示的Sizer已成为在 wxWidgets 中定义对话框中控件布局的首选方法,因为它们能够创建独立于平台的具有视觉吸引力的对话框,同时考虑到各个控件的大小和样式的差异。
与最初的 wxWidgets 对话框编辑器不同,wxDesigner、DialogBlocks、XRCed 和 wxWorkshop 等编辑器完全基于 sizer 创建对话框,实际上迫使用户创建平台独立布局而不妥协。
下一节描述并展示了使用 sizer 可以做什么。以下部分简要描述了如何使用单独的 sizer 类进行编程。
Sizer背后的想法
wxWidgets 中sizer 使用的布局算法与其他GUI 工具包中的布局系统密切相关,例如Java 的AWT、GTK 工具包或Qt 工具包。它基于各个子窗口报告其最小所需大小以及在父窗口的大小发生变化时它们能够被拉伸的想法。这通常意味着程序员不会设置对话框的启动大小,而是会为对话框分配一个 sizer,并且将询问该 sizer 的推荐大小。这个 sizer 反过来会查询它的孩子(可以是普通窗口、空白空间或其他 sizer),以便可以构建一个 sizer 层次结构。注意wxSizer不是从wxWindow派生的 因此不会干扰选项卡排序,并且与屏幕上的真实窗口相比需要很