День добрый.
Пишу под Maya 2015 небольшой скрипт.
Суть - через механизм eventfilter'ов добавить несколько своих операций ДО и ПОСЛЕ передачи их в Maya.
Никак не получается правильно отправить event виджету.
В режиме работы CTRL+LMB(Release) инструмент для которого описан eventfilter срабатывает позднее
чем исполняется код из eventfilter'a.
То-есть вот часть кода:
elif mc.currentCtx()=='nexMultiCutCtx1' and etype == qtc.QEvent.MouseButtonRelease and not self.blocked:
button = event.button()
mods = event.modifiers()
if button == qtc.Qt.LeftButton and mods == qtc.Qt.ControlModifier:
self.blocked = True
if not self.cuted:
# create sets
self.mcSetsVerts = mc.sets(self.mcCompVerts, n='mcSetsVerts')
self.mcSetsEdges = mc.sets(self.mcCompEdges, n='mcSetsEdges')
self.mcSetsFaces = mc.sets(self.mcCompFaces, n='mcSetsFaces')
else:
self.mcSetsVerts = mc.sets(self.mcCompVertsReselect, n='mcSetsVerts')
self.mcSetsEdges = mc.sets(self.mcCompEdgesReselect, n='mcSetsEdges')
self.mcSetsFaces = mc.sets(self.mcCompFacesReselect, n='mcSetsFaces')
print "\n\n\t\t\t\t BEFOR SEND \n"
self.q_app.sendEvent( obj, event )
print "\n\n\t\t\t\t AFTER SEND \n"
# restore set
self.mcCompVertsReselect=(mc.sets(self.mcSetsVerts, q=True))
self.mcCompEdgesReselect=(mc.sets(self.mcSetsEdges, q=True))
self.mcCompFacesReselect=(mc.sets(self.mcSetsFaces, q=True))
try:
mc.delete (self.mcSetsVerts, self.mcSetsEdges, self.mcSetsFaces)
except ValueError:
print ("")
self.cuted = True
self.blocked = False
return True
... и не смотря на то что после self.q_app.sendEvent( obj, event ) идёт код, выполняется он
раньше чем в виджет отправится event. То-есть блок #restore set выполняется раньше чем
выполняется sendEvent. Помогите пожалуйста решить ситуацию.