So this kinda works, but I can't set the widget to be fully transparent
without losing the mouseMoveEvent.
Any ideas?
from PySide import QtGui
from PySide import QtCore
class ModalScaleWidget(QtGui.QWidget):
scaling = QtCore.Signal(float)
def __init__(self, parent=None):
super(ModalScaleWidget, self).__init__(parent)
self.setWindowOpacity(0.1)
self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
self.setCursor(QtCore.Qt.SizeBDiagCursor)
def mouseMoveEvent(self, event):
'''Emit signal with the distance to the position of the first
click'''
point = event.pos() - self.posOnClick
self.scaling.emit(point.manhattanLength())
def mousePressEvent(self, event):
'''Store the initial position when the user clicks'''
self.posOnClick = event.pos()
def mouseReleaseEvent(self, event):
'''Close widget when mouse is released'''
self.close()
def keyPressEvent(self, event):
'''Close widget when escape key is pressed'''
if event.key() == QtCore.Qt.Key_Escape:
self.close()
super(ModalScaleWidget, self).keyPressEvent(event)
def test(distance):
print distance
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
w = ModalScaleWidget()
w.scaling.connect(test)
w.showFullScreen()
w.show()
w.raise_()
sys.exit(app.exec_())
On 14/02/16 6:39 pm, Frank Rueter | OHUfx wrote:
Hi all,
I am keen to figure out how I can create a mode that will output the
result of a simple gesture, such as a horizonal or vertical drag.
This is not for phones/tablets, but rather for "invisible sliders",
where the user can press a hotkey to go into a certain "mode", then
click/drag to perform a certain action (such as scaling or drawing a
line on the screen).
First I was thinking about an invisible widget that opens in full
screen and grabs the mouse event, but that seemed rather brute force
and ugly. Then I saw the docs for QGestureEvent but the examples I
found are sparse and all in C++. I'd be happy to explore those more
but I'm not sure if I'm even on the right track here.
Can somebody point me in the right direction please?
Cheers,
frank
--
ohufxLogo 50x50 <http://www.ohufx.com> *vfx compositing
<http://ohufx.com/index.php/vfx-compositing> | *workflow customisation
and consulting <http://ohufx.com/index.php/vfx-customising>* *
_______________________________________________
PySide mailing list
PySide@qt-project.org
http://lists.qt-project.org/mailman/listinfo/pyside
--
ohufxLogo 50x50 <http://www.ohufx.com> *vfx compositing
<http://ohufx.com/index.php/vfx-compositing> | *workflow customisation
and consulting <http://ohufx.com/index.php/vfx-customising>* *
_______________________________________________
PySide mailing list
PySide@qt-project.org
http://lists.qt-project.org/mailman/listinfo/pyside