首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MaxScript中获取SubRollouts的顺序

如何在MaxScript中获取SubRollouts的顺序
EN

Stack Overflow用户
提问于 2021-09-22 01:25:01
回答 1查看 46关注 0票数 0

我正在尝试访问子卷展栏的顺序的mainSubRollout属性。

在运行下面的代码并像图像一样拖动子2卷展栏到顶部并选中mainRolTest.mainSubRollout.rollouts之后,即使卷展栏的显示顺序不同,它也总是返回#(Rollout:subRollout1, Rollout:subRollout2)

如何访问它们当前显示的顺序?

图像的结果应该是:#(Rollout:subRollout2, Rollout:subRollout1)

代码语言:javascript
复制
try destroyDialog mainRolTest catch()

(

  rollout subRollout1 "Sub 1" autoLayoutOnResize:true
  (
    button theButton1 "Fake Button 1"
    )

  rollout subRollout2 "Sub 2"  autoLayoutOnResize:true
  (
    button theButton2 "Fake Button 2"
    )

  rollout mainRolTest "..."
  (

    button btn_close "X" align:#right offset:[13,-5]

    SubRollout mainSubRollout "" height:133 width:150 pos:[0,20]

    on btn_close pressed do destroydialog mainRolTest

    )

  createDialog mainRolTest 150 133 style:#() lockHeight:true lockWidth:true
  AddSubRollout mainRolTest.mainSubRollout subRollout1
  AddSubRollout mainRolTest.mainSubRollout subRollout2

  )

-- This always returns #(Rollout:subRollout1, Rollout:subRollout2)
-- Even though the order of the rollouts are not the same
-- How can i access this info?
mainRolTest.mainSubRollout.rollouts
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-24 20:06:06

您可以随时使用它们的实际位置:

代码语言:javascript
复制
fn sortByY A B = (windows.getWindowPos A.hWnd).y - (windows.getWindowPos B.hWnd).y
rollouts = #() + mainRolTest.mainSubRollout.rollouts
qSort rollouts sortByY --> 'rollouts' will now be sorted based on Y

如果您想要索引,并且不介意使用一点.NET,也可以这样做:

代码语言:javascript
复制
iGlobal = (dotNetClass "Autodesk.Max.GlobalInterface").Instance
rollupContainer = iGlobal.GetIRollup (UIAccessor.GetParentWindow mainRolTest.mainSubRollout.rollouts[1].hwnd)
rollupContainer.GetPanelIndex mainRolTest.mainSubRollout.rollouts[2].hwnd

为了完整起见,您也可以通过Qt完成此操作:

代码语言:javascript
复制
QtWidgets = python.import "PySide2.QtWidgets"
rolloutWidget = QtWidgets.QWidget.find (UIAccessor.GetParentWindow mainRolTest.mainSubRollout.rollouts[1].hwnd)
((rolloutWidget.parent()).layout()).indexOf rolloutWidget
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69277162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档