Kentaro Wada 3 anni fa
parent
commit
b90a305a7b
3 ha cambiato i file con 27 aggiunte e 12 eliminazioni
  1. 25 10
      labelme/app.py
  2. 1 1
      labelme/widgets/label_list_widget.py
  3. 1 1
      setup.py

+ 25 - 10
labelme/app.py

@@ -458,9 +458,11 @@ class MainWindow(QtWidgets.QMainWindow):
         zoom = QtWidgets.QWidgetAction(self)
         zoom.setDefaultWidget(self.zoomWidget)
         self.zoomWidget.setWhatsThis(
-            self.tr(
-                "Zoom in or out of the image. Also accessible with "
-                "{} and {} from the canvas."
+            str(
+                self.tr(
+                    "Zoom in or out of the image. Also accessible with "
+                    "{} and {} from the canvas."
+                )
             ).format(
                 utils.fmtShortcut(
                     "{},{}".format(shortcuts["zoom_in"], shortcuts["zoom_out"])
@@ -749,7 +751,7 @@ class MainWindow(QtWidgets.QMainWindow):
             fitWidth,
         )
 
-        self.statusBar().showMessage(self.tr("%s started.") % __appname__)
+        self.statusBar().showMessage(str(self.tr("%s started.")) % __appname__)
         self.statusBar().show()
 
         if output_file is not None and self._config["auto_save"]:
@@ -788,17 +790,24 @@ class MainWindow(QtWidgets.QMainWindow):
         # XXX: Could be completely declarative.
         # Restore application settings.
         self.settings = QtCore.QSettings("labelme", "labelme")
-        # FIXME: QSettings.value can return None on PyQt4
         self.recentFiles = self.settings.value("recentFiles", []) or []
         size = self.settings.value("window/size", QtCore.QSize(600, 500))
         position = self.settings.value("window/position", QtCore.QPoint(0, 0))
+        state = self.settings.value("window/state", QtCore.QByteArray())
+        # PyQt4 cannot handle QVariant
+        if isinstance(self.recentFiles, QtCore.QVariant):
+            self.recentFiles = self.recentFiles.toList()
+        if isinstance(size, QtCore.QVariant):
+            size = size.toSize()
+        if isinstance(position, QtCore.QVariant):
+            position = position.toPoint()
+        if isinstance(state, QtCore.QVariant):
+            state = state.toByteArray()
         self.resize(size)
         self.move(position)
         # or simply:
         # self.restoreGeometry(settings['window/geometry']
-        self.restoreState(
-            self.settings.value("window/state", QtCore.QByteArray())
-        )
+        self.restoreState(state)
 
         # Populate the File menu dynamically.
         self.updateFileMenu()
@@ -1238,6 +1247,10 @@ class MainWindow(QtWidgets.QMainWindow):
         lf = LabelFile()
 
         def format_shape(s):
+            # PyQt4 cannot handle QVariant
+            if isinstance(s, QtCore.QVariant):
+                s = s.toPyObject()
+
             data = s.other_data.copy()
             data.update(
                 dict(
@@ -1478,7 +1491,9 @@ class MainWindow(QtWidgets.QMainWindow):
             )
             return False
         # assumes same name, but json extension
-        self.status(self.tr("Loading %s...") % osp.basename(str(filename)))
+        self.status(
+            str(self.tr("Loading %s...")) % osp.basename(str(filename))
+        )
         label_file = osp.splitext(filename)[0] + ".json"
         if self.output_dir:
             label_file_without_path = osp.basename(label_file)
@@ -1584,7 +1599,7 @@ class MainWindow(QtWidgets.QMainWindow):
         self.addRecentFile(self.filename)
         self.toggleActions(True)
         self.canvas.setFocus()
-        self.status(self.tr("Loaded %s") % osp.basename(str(filename)))
+        self.status(str(self.tr("Loaded %s")) % osp.basename(str(filename)))
         return True
 
     def resizeEvent(self, event):

+ 1 - 1
labelme/widgets/label_list_widget.py

@@ -70,7 +70,7 @@ class HTMLDelegate(QtWidgets.QStyledItemDelegate):
 class LabelListWidgetItem(QtGui.QStandardItem):
     def __init__(self, text=None, shape=None):
         super(LabelListWidgetItem, self).__init__()
-        self.setText(text)
+        self.setText(text or "")
         self.setShape(shape)
 
         self.setCheckable(True)

+ 1 - 1
setup.py

@@ -34,7 +34,7 @@ def get_install_requires():
         "numpy",
         "Pillow>=2.8",
         "PyYAML",
-        "qtpy",
+        "qtpy!=1.11.2",
         "termcolor",
     ]