花了好几个小时试图解决这个问题但仍然没有得到它。没有任何文件提及它的任何内容。如果没有手动重新安排原点的所有内容,这是rebol的事吗?
也许我只是期待太多了?
编辑:我发现了一个hack:缩进num,然后在下一行缩进-num。在这种语言的所有壮观功能中,为什么他们不能只添加一个简单的命令,如中心?
答案 0 :(得分:5)
有一个CENTER-FACE功能可以重复使用以对齐脸部,但不幸的是,根据我的经验,它不能很好地工作。这是一个更简单的替换版本,可以解决这个问题:
center-face: func [face [object!] parent [object!]][
face/offset: parent/size - face/size / 2
]
以下是一个用法示例:
lay: layout [
size 300x300
b: button "Hello World"
]
center-face b lay
view lay
答案 1 :(得分:3)
首先,VID不是Rebol,而是由作者Carl Sassenrath编写的演示方言,用于演示如何在Rebol中对接口进行说明。还有其他一些包括RebGUI(http://www.dobeash.com/rebgui.html),虽然我怀疑没有办法在那里设置按钮,因为两位作者都认为它很重要。
您也可以使用PAD将光标对准靠近布局的中心。
答案 2 :(得分:3)
我们不能根据窗口本身居中或对齐东西,因为控件在父节点已经'SHOW调用它之后'之前没有任何方式可以引用它们的父面。
在显示父级之前,不会设置face / parent-face。所以在正常的VID中你需要在初始布局之后调整gui&观点已经完成。
这是一个小小的脚本,显示了如何在任何面部至少显示一次之后居中。
view / new用于延迟事件处理,以便修改布局。
rebol []
center: func [face][
face/offset/x: (face/parent-face/size/x / 2) - (face/size/x / 2)
show face
]
view/new layout [
across
t: h1 "This is a centered title!"
return
button "1"
button "2"
button "3"
button "4"
]
center t
do-events