Răsfoiți Sursa

Hide label list in labelDialog by the result of text edit

Kentaro Wada 6 ani în urmă
părinte
comite
35c2d75048
1 a modificat fișierele cu 10 adăugiri și 0 ștergeri
  1. 10 0
      labelme/widgets/label_dialog.py

+ 10 - 0
labelme/widgets/label_dialog.py

@@ -32,6 +32,7 @@ class LabelDialog(QtWidgets.QDialog):
         self.edit = LabelQLineEdit()
         self.edit.setPlaceholderText(text)
         self.edit.setValidator(labelme.utils.labelValidator())
+        self.edit.textChanged.connect(self.textChangedCallback)
         self.edit.editingFinished.connect(self.postProcess)
         layout = QtWidgets.QVBoxLayout()
         if show_text_field:
@@ -67,6 +68,15 @@ class LabelDialog(QtWidgets.QDialog):
         completer.setModel(self.labelList.model())
         self.edit.setCompleter(completer)
 
+    def textChangedCallback(self):
+        text = self.edit.text().strip()
+        for i in range(self.labelList.count()):
+            item = self.labelList.item(i)
+            if text in item.text():
+                item.setHidden(False)
+            else:
+                item.setHidden(True)
+
     def addLabelHistory(self, label):
         if self.labelList.findItems(label, QtCore.Qt.MatchExactly):
             return