如何在UI Maya Python中启用拖动选择

时间:2016-10-08 03:55:14

标签: python maya

我想知道如何启用拖动选择以在我的UI上选择一些按钮。

我尝试使用cmds.selectPref(clickBoxSize=True),但它无法正常使用。

1 个答案:

答案 0 :(得分:0)

import maya.cmds as cmds
import shiboken
import maya.OpenMayaUI as omUI
from PySide import QtGui, QtCore
ui_btns = {}

win = cmds.window()
cmds.columnLayout(adjustableColumn=True)
ui_btns["btn_a"] = cmds.button(label="Burning")
ui_btns["btn_b"] = cmds.button(label="Man")
cmds.setParent("..")
cmds.showWindow(win)

draggerContext_id = "dga"
def dga():
    cp = QtGui.QCursor().pos()
    widget = QtGui.qApp.widgetAt(cp)
    ui_id = omUI.MQtUtil.fullName(long(shiboken.getCppPointer(widget)[0]))
    print "ui path :{0}".format([ui_id for k, v in ui_btns.iteritems() if ui_id in v])

cmds.draggerContext(draggerContext_id, dragCommand = "dga()", cursor="hand", space="screen")
cmds.setToolTo(draggerContext_id)

获取ui路径的简单想法,你也可以用scriptjob或threading.Timer()。start()命令替换draggerContext,有更多的解决方案,取决于你的UI和工作流程(后期处理) eval或ui元素dragcallback ...从代码中看到一些部分会很棒