我想知道如何启用拖动选择以在我的UI上选择一些按钮。
我尝试使用cmds.selectPref(clickBoxSize=True)
,但它无法正常使用。
答案 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 ...从代码中看到一些部分会很棒