Использование ключевого модификатора с модальным блендером
Кто-нибудь знает, как заставить модал сделать что-то другое, если у меня есть ключ? Это то, что у меня есть на данный момент:
if event.type == 'MOUSEMOVE':
if event.type == 'LEFT_SHIFT' and event.value == 'PRESS':
self.value = (event.mouse_region_x - self.mouse_x_initial)
print(self.value)
self.value = event.mouse_region_x - self.mouse_x_initial
1 ответ
Решение
event
параметр имеет логические свойства для ctrl
, alt
, shift
а также oskey
, Проверьте их, чтобы узнать, удерживается ли один из ключей во время события.
def modal(self, context, event):
if event.type == 'MOUSEMOVE':
if event.ctrl:
print('Ctrl is down')
if event.shift:
print('shift is down')
if event.alt:
print('alt is down')
elif event.type == 'ESC':
return {'CANCELLED'}
return {'RUNNING_MODAL'}
Поскольку логические свойства не различают левую и правую клавиши, вам нужно будет сохранить запись предыдущего события, а также проверить, чтобы узнать, какое действие предпринять, если вы хотите, чтобы они работали по-другому.