def _wheel_event_wrapper(self, orig_func, ev): # scrolling on the border is simply annoying, pop in a couple of pixels to make sure d = QtCore.QPoint(-2, 0) ev = QtGui.QWheelEvent(ev.pos() + d, ev.globalPos() + d, ev.pixelDelta(), ev.angleDelta(), ev.angleDelta().y(), QtCore.Qt.Vertical, ev.buttons(), ev.modifiers()) orig_func(self, ev)
def update(self, *args, **kwargs): super().update(*args, **kwargs) if self.widget: origin = QtCore.QPoint(self.values['origin x'], self.values['origin y']) self.roi.setPos(origin.x(), origin.y(), finish=False) self.roi.setSize( (self.values['extent x'], self.values['extent y']), finish=False)
def set_values(self, *args, **kwargs): # need to block signals to the stateGroup otherwise stateGroup.sigChanged # will be emmitted by setValue causing update to be called self.stateGroup.blockSignals(True) roi = args[0] extent, _, origin = roi.getAffineSliceParams( self.widget.imageItem.image, self.widget.imageItem) origin = QtCore.QPoint(*origin) * self.widget.transform extent = QtCore.QPoint(*extent) self.values['origin x'] = origin.x() self.values['origin y'] = origin.y() self.values['extent x'] = extent.x() self.values['extent y'] = extent.y() self.ctrls['origin x'].setValue(self.values['origin x']) self.ctrls['extent x'].setValue(self.values['extent x']) self.ctrls['origin y'].setValue(self.values['origin y']) self.ctrls['extent y'].setValue(self.values['extent y']) self.stateGroup.blockSignals(False) self.sigStateChanged.emit(self)
def readSettings(self): settings = QtCore.QSettings('dataviz', 'dataviz') self.lastDir = settings.value('lastDir', '.', str) pos = settings.value('pos', QtCore.QPoint(200, 200)) if isinstance(pos, QtCore.QVariant): pos = pos.toPyObject() self.move(pos) size = settings.value('size', QtCore.QSize(400, 400)) if isinstance(size, QtCore.QVariant): size = size.toPyObject() self.resize(size)