def post(self, rw, image): e = Qt.QEvent(self.NEW_IMAGE_EVENT) e.rw = rw e.image = image Qt.QCoreApplication.postEvent(self, e)
def post_new_image_event(self): # posting an event does not require calling thread to have an event loop, # unlike sending a signal if not self.servicing_image and not self.closing and self.isVisible(): Qt.QCoreApplication.postEvent(self, Qt.QEvent(self.NEW_IMAGE_EVENT))
def eventFilter(self, object, event): if event.type() == Qt.QEvent.FocusIn: self.__showCursor(True) if event.type() == Qt.QEvent.FocusOut: self.__showCursor(False) if event.type() == Qt.QEvent.Paint: Qt.QApplication.postEvent(self, Qt.QEvent(Qt.QEvent.User)) elif event.type() == Qt.QEvent.MouseButtonPress: if self.enableZeroadd or self.enablePoleadd: self.__drawAddedzero_pole(True, event.pos()) else: self.__select(event.pos()) return True elif event.type() == Qt.QEvent.MouseMove: curve = self.__selectedCurve if curve: tp = (self.__plot.invTransform(curve.xAxis(), event.pos().x()), self.__plot.invTransform(curve.xAxis(), event.pos().y())) self.mouseposChanged.emit(tp) self.__move(event.pos()) return True if event.type() == Qt.QEvent.KeyPress: delta = 5 key = event.key() if key == Qt.Qt.Key_Up: self.__shiftCurveCursor(True) return True elif key == Qt.Qt.Key_Down: self.__shiftCurveCursor(False) return True elif key == Qt.Qt.Key_Right or key == Qt.Qt.Key_Plus: if self.__selectedCurve: self.__shiftPointCursor(True) else: self.__shiftCurveCursor(True) return True elif key == Qt.Qt.Key_Left or key == Qt.Qt.Key_Minus: if self.__selectedCurve: self.__shiftPointCursor(False) else: self.__shiftCurveCursor(True) return True if key == Qt.Qt.Key_1: self.__moveBy(-delta, delta) elif key == Qt.Qt.Key_2: self.__moveBy(0, delta) elif key == Qt.Qt.Key_3: self.__moveBy(delta, delta) elif key == Qt.Qt.Key_4: self.__moveBy(-delta, 0) elif key == Qt.Qt.Key_6: self.__moveBy(delta, 0) elif key == Qt.Qt.Key_7: self.__moveBy(-delta, -delta) elif key == Qt.Qt.Key_8: self.__moveBy(0, -delta) elif key == Qt.Qt.Key_9: self.__moveBy(delta, -delta) return Qwt.QwtPlot.eventFilter(self, object, event)
def post_live_update(self): # posting an event does not require calling thread to have an event loop, # unlike sending a signal Qt.QCoreApplication.postEvent(self, Qt.QEvent(self.RW_LIVE_STREAM_BINDING_LIVE_UPDATE_EVENT))
def mousePressEvent(self, event): if event.button() == QtCore.Qt.LeftButton: self.dragPosition = event.globalPos() - self.frameGeometry().topLeft() QtWidgets.QApplication.postEvent(self, Qt.QEvent(174)) event.accept()