【问题标题】:problem with rebol vid panel and offset 0x0rebol vid 面板和偏移量 0x0 的问题
【发布时间】:2010-08-16 06:40:23
【问题描述】:

这行不通

panel1.layout: layout [
  offset: 0x0
  yuml-image: image img
]

panel2.layout: layout [
  offset: 0x0
  area (yuml-command0) yellow
]

panelbuttons.layout: layout [

    button "Save" [request-save]
    button "Refresh" [request-refresh]
    button "Quit" [quit]

]

Main: layout [
  panel1: box 640x300 white
  return
  panelbuttons: box 640x20
  return
  panel2: box 640x180 yellow
]

panel1/pane: panel1.layout
panel2/pane: panel2.layout
panelbuttons/pane: panelbuttons.layout

view/title/options center-face Main "askuml.com" [no-border]

我只是想要这样的等价物:

Main: layout [
    offset: 0x0
    yuml-image: image img
    return
    across
    button "Save" [request-save]
    button "Refresh" [request-refresh]
    button "Quit" [quit]
    return
    area (yuml-command0) yellow
]

另外为什么我有一个边框,而我问偏移量 0x0 看到下面丑陋的灰色边框: alt text http://askuml.com/files/2010/07/uml-online-tool.gif

更新:现在我有了这个丑陋的窗口 alt text http://askuml.com/files/2010/07/vid-ugly.gif

http://askuml.com/blog/yuml-use-case-desktop-client/

我更新了代码,现在我看不到(甚至是你的:))按钮:

【问题讨论】:

  • 我敢冒险丑陋的窗口与定向流动有关。默认情况下事情会下降,所以你的主要布局应该是[origin 0 <panel> <panel> <panel>] 是你的面板定义的缩写)。对于您的按钮,它们会穿过,所以 [origin 5x10 space 5 across <btn> <btn> <btn>](使用 btn 而不是 button 你会得到 my 按钮图像 :)
  • 当然,如果您想一次性完成所有操作,可以是这样的:[origin 0 space 6 <image> across pad 6 <btn> <btn> <btn> below <area>] - VID 中的定向流是一头善变的野兽,但它会让您到达那里。甚至不要考虑调整大小(留到另一天)。

标签: user-interface layout rebol


【解决方案1】:

我会说你的第一直觉是正确的,但会这样修改它:

Main: layout [
    origin 0 space 6
    yuml-image: image img 600x400
    across pad 6
    btn "Save" [request-save]
    btn "Refresh" [request-refresh]
    btn "Quit" [quit]
    below
    area (yuml-command0) yellow 600x200
]

如果你真的需要拆分面板,让 'panel 样式完成繁重的工作:

image-panel: [
    yuml-image: image 600x400 img
]

btn-panel: [
    across origin 6 space 6
    btn "Save" [request-save]
    btn "Refresh" [request-refresh]
    btn "Quit" [quit]
]

area-panel: [
    area yellow 600x200
]

main: layout [
    origin 0 space 0
    panel image-panel
    panel btn-panel
    panel area-panel
]

【讨论】:

【解决方案2】:

你需要:

layout [
    origin 0x0
    ...
]

您还可以使用 space 0x0backcolor 238.234.221 来省去灰色。我也偏爱更改区域边缘 - area edge [size: 1x1 effect: none]

其他一些选项:layout/tight [...](空格和原点 0)、layout/origin [...] 0x0

view/options [no-border] 指的是操作系统窗口。布局方言中的任何set-word!,特指给后续样式赋值一个词。

【讨论】:

  • 感谢所有选项将尝试所有。但目前我什至无法将工作原点设为 0x0:它说 0x0 放错了位置。并且返回也不起作用,请参阅askuml.com/blog/yuml-use-case-desktop-client
  • view layout/offset [btn "test"] 0x0 ;这应该起作用,因为 offset 是对布局功能的改进。
【解决方案3】:

试试这个,

w: layout/size [backcolor red btn "test"] 300x300
v: layout/tight [box blue 100x100]
append w/pane v
view w

或使用 insert 而不是 append 将脸放在其他人的后面:

insert w/pane v

【讨论】:

  • 对不起,如果我很愚蠢,我不明白如何将您的代码应用于我的用例:)
  • 可能是我很愚蠢并且误解了你的问题:) 我试图向你展示如何将一个布局添加到另一个偏移为 0x0 的布局中。因此,您可以将此应用于您的案例。请注意,第二个布局(即 'v)很紧凑。
【解决方案4】:

面板只是一个布局,没有别的。 您可以创建布局并将它们添加到另一个布局的窗格中,或者只使用面板样式。

http://www.rebol.com/how-to/subpanels.html

view layout [backcolor yellow size 200x200 origin 0x0 space 0x0 b: panel red [btn "test" lbl "Test"] return panel blue [btn "x" lbl "rest" lbl "x"]]
>> ? b
== B is an object of value:
type            word!     face      ;<--- just a face
offset          pair!     0x0
size            pair!     36x49
span            none!     none
pane            block!    length: 2 ;<--- btn & lbl
...

【讨论】:

  • 我以为我在第一名,但会再次查看面板。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-27
  • 1970-01-01
  • 1970-01-01
  • 2019-05-01
  • 1970-01-01
  • 2021-01-07
  • 1970-01-01
相关资源
最近更新 更多