В составе PyQt4 для Python как определить нажмите Ctrl + прокрутка колеса мыши
Я разрабатываю приложение.Я бы хотел, чтобы была возможность увеличивать и уменьшать масштаб. для этого я хотел бы, чтобы программа получала, когда нажимается клавиша управления и одновременно прокручивается мышь, и соответственно увеличивала масштаб (прокрутка вверх для увеличения и прокрутка вниз для уменьшения) я много искал и читал, но нашел только способы получить контрольное нажатие и мышь click-event , а не мышь scroll-event. Я также нашел способ получить прокрутку мыши, но не мог заставить его работать только с контрольным прессом. - и игнорировать все остальные прессы.
Может ли кто-нибудь предложить что-нибудь, чтобы помочь мне???1 ответ:
Это немного зависит от структуры вашего приложения. Один из способов получить scroll-events-добавить обработчик
wheelEvent
в виджетdef wheelEvent(self, QWheelEvent): modifiers = QtGui.QApplication.keyboardModifiers() if modifiers == QtCore.Qt.ControlModifier: # do your processing
Другим подходом может быть установка фильтра событий в компоненте, где вы хотите перехватить события прокрутки с помощью
component.viewport().installEventFilter(self)
(Возможно, вам придется установить фильтр событий на самом компоненте iso на видовом экране).
И
self
имеет функциюeventFilter
, подобнуюdef eventFilter(self, qobject, event): if (event.type() == QtCore.QEvent.Wheel) : modifiers = QtGui.QApplication.keyboardModifiers() if modifiers == QtCore.Qt.ControlModifier: #do some scaling stuff return True return False else: # standard event processing return False
Надеюсь, это поможет.