Creator2.4.4 Widget的尴尬理解TAT


先说需求吧,很简单,两个Label组件的对齐,本来应一个widget组件让红色的节点始终与黄色节点的最右侧保持固定距离即可。但是, 如图显示,此时widget显示的数值和实际表现不一致!而且我修改红色节点的Size.width属性值,Widget.Right的值会跟着变(我的节点锚点x=0)?这都让我怀疑自己用了这么多年用了个假的widget了。

黄色label拖进红色lable的widget组件的target里面去,红色widget勾left填100%?

我刚刚在2.4.2试了一下,跟你一样的情况,我理解是这样:
left:左边框距离左边框的像素,right:右边框距离右边框的像素,这样就符合咱俩这测试的逻辑,而且也与锚点无关 :joy:

艹。。。。被带沟里去了,逻辑就是这样啊,全屏遮挡适配的时候不就是4个边全勾0么?

理解你的需求了,你这需求不能这么弄,用富文本的,不然你前后都不固定尺寸没法处理,或者把斜杠作为父节点,黄色右对齐,红色左对齐,这样试试

没看懂,看效果没问题。
不行就检查父节点的 size,节点 size 不一定等于 label 实际显示的 size

我理解的他的需求是认为widget的right属性是锚点相对父节点的位置,然后他应该是希望子节点的文本(锚点x为0)一直处于父节点的最右端。但是实际上right表示的是子节点的右边框距离父节点的右边框的位置,他父节点和子节点尺寸都不定就没法这么处理

了解,那就是对组件的功能有比较大的理解偏差。
实际上 Widget 和锚点没关系。
楼主的需求,直接把父节点的锚点 x 设为 1,子节点锚点 x 设为 0 可能就行了,不需要 widget

:joy:好像是,钻牛角尖了

但是奇特的是,我这么样的用法,在编辑器中改变这个黄色节点的类容为100时,红色节点的位置是会向右移动的,这就满足了我的需求。但是运行时在编辑器中却不行了,重叠了,因此我才发帖的,我印象中以前做这种label拼接都是这样的(也可能是fgui的规则我混淆了吧)

我觉得可能不是widget的问题,有可能是文本长度的问题。以前遇到过类似的,在改变文本内容后取出来的文本宽度并没有改变。好像是需要手动调一下啥接口刷新一下

我对widget的理解确实偏差了。按照组件的实际用法,如果我的子节点锚点为0,改为勾选left,即始终与黄色节点的最右边框保持等距,那么当黄色节点的右边框向右移动时,子节点的左边框也会跟着向右移动吧?

嗯,有这个可能,我可以试试,目前使用layout解决了。

不用试了,我想了一下,确实是我错了,widget不是这么用的。

Isometry.zip (2.2 KB) 关于需求,搞了个组件去实现,本来想用Inspector扩展属性面板的,没搞出来 :rofl:研究出了再改吧。

1赞

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。