Merge pull request #65 from yjmade/master
fix some bugs when running on Mac with PyQT5
This commit is contained in:
commit
634fc0c637
@ -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):
|
||||
|
||||
@ -523,16 +523,25 @@ class Canvas(QWidget):
|
||||
return super(Canvas, self).minimumSizeHint()
|
||||
|
||||
def wheelEvent(self, ev):
|
||||
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:
|
||||
h_delta = ev.delta()
|
||||
v_delta = 0
|
||||
else:
|
||||
delta = ev.angleDelta()
|
||||
h_delta = delta.x()
|
||||
v_delta = delta.y()
|
||||
|
||||
mods = ev.modifiers()
|
||||
if Qt.ControlModifier == int(mods):
|
||||
self.zoomRequest.emit(ev.delta())
|
||||
if Qt.ControlModifier == int(mods) and v_delta:
|
||||
self.zoomRequest.emit(v_delta)
|
||||
else:
|
||||
self.scrollRequest.emit(ev.delta(),
|
||||
Qt.Horizontal if (Qt.ShiftModifier == int(mods))
|
||||
else Qt.Vertical)
|
||||
else:
|
||||
self.scrollRequest.emit(ev.delta(), Qt.Horizontal)
|
||||
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):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user