2016-10-08 5 views
2

Я хотел бы знать, как включить выбор перетаскивания, чтобы выбрать некоторые кнопки в моем интерфейсе.Как включить выбор перетаскивания в UI Maya Python

Я попытался использовать cmds.selectPref(clickBoxSize=True), но это не сработает.

+0

Это не помогает никому. Вам нужно задать важный вопрос, прежде чем кто-нибудь сможет вам помочь. – jwpfox

ответ

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) 

его простая идея, чтобы получить путь к пользовательскому интерфейсу, вы можете также заменить draggerContext с scriptjob или threading.Timer(). Начать() команда, есть еще решения, зависит от вашего UI а workflow (post process eval или ui element dragcallback ... было бы здорово увидеть некоторые разделы из вашего кода)