diff --git a/labelImg.py b/labelImg.py index f3261b12..fd935ac0 100644 --- a/labelImg.py +++ b/labelImg.py @@ -204,7 +204,7 @@ class MainWindow(QMainWindow, WindowMixin): 'Ctrl+r', 'open', u'Change default saved Annotation dir') openAnnotation = action('&Open Annotation', self.openAnnotation, - 'Ctrl+q', 'openAnnotation', u'Open Annotation') + 'Ctrl+Shift+O', 'openAnnotation', u'Open Annotation') openNextImg = action('&Next Image', self.openNextImg, 'd', 'next', u'Open Next') @@ -445,7 +445,7 @@ class MainWindow(QMainWindow, WindowMixin): self.updateFileMenu() # Since loading the file may take some time, make sure it runs in the # background. - self.queueEvent(partial(self.loadFile, self.filePath)) + self.queueEvent(partial(self.loadFile, self.filePath or "")) # Callbacks: self.zoomWidget.valueChanged.connect(self.paintCanvas) @@ -1035,13 +1035,14 @@ class MainWindow(QMainWindow, WindowMixin): return path = os.path.dirname(str(self.filePath))\ if self.filePath else '.' - formats = ['*.%s' % str(fmt).lower() - for fmt in QImageReader.supportedImageFormats()] + formats = ['*.%s' % fmt.data().decode("ascii").lower() for fmt in QImageReader.supportedImageFormats()] filters = "Image & Label files (%s)" % \ ' '.join(formats + ['*%s' % LabelFile.suffix]) filename = QFileDialog.getOpenFileName(self, '%s - Choose Image or Label file' % __appname__, path, filters) if filename: + if isinstance(filename, (tuple,list)): + filename=filename[0] self.loadFile(filename) def saveFile(self, _value=False): diff --git a/libs/canvas.py b/libs/canvas.py index 6e3404bd..e3d0ac0b 100644 --- a/libs/canvas.py +++ b/libs/canvas.py @@ -523,16 +523,25 @@ class Canvas(QWidget): return super(Canvas, self).minimumSizeHint() def wheelEvent(self, ev): - if ev.orientation() == Qt.Vertical: - mods = ev.modifiers() - if Qt.ControlModifier == int(mods): - self.zoomRequest.emit(ev.delta()) + qt_version = 4 if hasattr(ev, "delta") else 5 + if qt_version == 4: + if ev.orientation() == Qt.Vertical: + v_delta = ev.delta() + h_delta = 0 else: - self.scrollRequest.emit(ev.delta(), - Qt.Horizontal if (Qt.ShiftModifier == int(mods)) - else Qt.Vertical) + h_delta = ev.delta() + v_delta = 0 else: - self.scrollRequest.emit(ev.delta(), Qt.Horizontal) + delta = ev.angleDelta() + h_delta = delta.x() + v_delta = delta.y() + + mods = ev.modifiers() + if Qt.ControlModifier == int(mods) and v_delta: + self.zoomRequest.emit(v_delta) + else: + v_delta and self.scrollRequest.emit(v_delta, Qt.Vertical) + h_delta and self.scrollRequest.emit(h_delta, Qt.Horizontal) ev.accept() def keyPressEvent(self, ev):