一半君的总结纸

听话只听一半君

#21 如何让一个按钮 (或者其他 UI control) 在一个layout里居中显示?

要达到这个效果不难, 但是可能比你想当然的程度要复杂一点点.

一个 UI control 必须 attach 到其他的UI或者layout上; 否则他就会自由的悬浮在窗口里了(如果他的 attachment 是 “None”的话). 所有的control都没有 “center” alignment 的选项.

如果是在 columnLayout 或 rowLayout里, attachments 是使用 ‘−columnAttach’ 和 ‘−rowAttach’ attributes来定义的. 但其实我从来不用这两个layout, 因为他们没有居中的选项.

这种情况下你最好使用 formLayout. 虽然他也没有 “center button” 的功能,但是你可以使用 attachment commands达到同样的效果:

window;
  string $form = `formLayout`;
    string $button = `button -label "Centered Button"`;
    setParent ..;

  formLayout -e
    -attachPosition  $button    left    0  25
    -attachPosition  $button    right   0  75
      $form;

showWindow;

上面的例子里,我把按钮的左边和右边都attach到了form的相应边,用了同样的间距. 一个 formLayout 默认被分成了100 份. 这个layout在他的左右侧都留下了 25 个单位距离,所以最终效果就是按钮居中了.

参见这个例子里的更详细说明:

(lz会把这个放在Maya GUI How-to里,目前还没有写)

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: