Russian Qt Forum
Ноябрь 25, 2024, 21:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Правильный QEvent  (Прочитано 1220 раз)
prostrelov
Гость
« : Декабрь 07, 2014, 08:30 »

День добрый.
Пишу под 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. Помогите пожалуйста решить ситуацию.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 21.