gpt4 book ai didi

swt - FormLayout、FormData 和控件

转载 作者:行者123 更新时间:2023-12-05 01:18:43 26 4
gpt4 key购买 nike

有人可以向我解释一下 FormLayout 上的 FormData 是如何工作的吗?我试图了解 FormAttachment 构造函数及其参数(分子、偏移量、分母)。你什么时候只需要其中一个,其中两个或所有参数......另外,如果我有一个组(或一个组合)将添加像按钮和标签这样的小部件,这些小部件需要根据分辨率使用FormData,Group 是否也需要一个 FormLayout?我尝试用表单布局指定组的宽度,但没有改变

最佳答案

FormAttachment 有几个不同的构造函数,我通常使用两个:

new FormAttachment (int numerator, int offset) - 如果只有两个整数参数,那么第一个参数表示距父级边缘的百分比。哪条边由您将 FormAttachment 插入 FormData 对象中的哪个插槽决定:FormData.top、data.bottom、data.left 和 FormData.right。

new FormAttachment (Control control, int offset) - 不是将对象定位在父对象上,而是将对象定位在另一个子对象旁边。这与前面的构造函数结合使用,这样您就可以有效地将一个元素“锚定”在父元素上,然后通过相对于 anchor 定位其他元素来构建您的布局。这还允许您轻松地将元素移动和插入到整体布局中,而无需重建整个布局。

其他的是这两个主题的变体。 FormAttachment (int numerator, int denominator, int offset) 与具有两个整数参数的 FormAttachment 相同,但是有两个时分母变为“100”,即将分子变为百分比。但是你可以说类似 (1, 2, 0) 的 1/2 的方式或 (1, 3, 0) 的 1/3 的空间。

我不确定您所说的 Group 是否需要定义布局是什么意思,但通常每个父 Composite 都必须在其上定义布局以显示子元素。如果您希望元素随着父元素调整大小时调整大小,一种选择是将子元素附加到元素的左侧和右侧:

FormData formData = new FormData();
formData.left = new FormAttachment (0, 0); // Attach at the 0% left with 0 offset
formData.right = new FormAttachment (100, 0); // Attach at the 100% right with 0 offset

Eclipse 站点有很多显示 FormLayout 的好片段,查看:

http://www.eclipse.org/swt/snippets/

向下滚动到 FormLayout 部分。

关于swt - FormLayout、FormData 和控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11864803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com