提交 0bd5e159 编写于 作者: HinGwenWoong's avatar HinGwenWoong

Different key show different color

上级 4f8b1375
...@@ -366,7 +366,7 @@ class MainWindow(QMainWindow): ...@@ -366,7 +366,7 @@ class MainWindow(QMainWindow):
resetAll = action(getStr('resetAll'), self.resetAll, None, 'resetall', getStr('resetAllDetail')) resetAll = action(getStr('resetAll'), self.resetAll, None, 'resetall', getStr('resetAllDetail'))
color1 = action(getStr('boxLineColor'), self.chooseColor1, color1 = action(getStr('boxLineColor'), self.chooseColor,
'Ctrl+L', 'color_line', getStr('boxLineColorDetail')) 'Ctrl+L', 'color_line', getStr('boxLineColorDetail'))
createMode = action(getStr('crtBox'), self.setCreateMode, createMode = action(getStr('crtBox'), self.setCreateMode,
...@@ -1042,7 +1042,7 @@ class MainWindow(QMainWindow): ...@@ -1042,7 +1042,7 @@ class MainWindow(QMainWindow):
def loadLabels(self, shapes): def loadLabels(self, shapes):
s = [] s = []
for label, points, line_color, key, difficult in shapes: for label, points, line_color, key_cls, difficult in shapes:
shape = Shape(label=label, line_color=line_color) shape = Shape(label=label, line_color=line_color)
for x, y in points: for x, y in points:
...@@ -1207,6 +1207,7 @@ class MainWindow(QMainWindow): ...@@ -1207,6 +1207,7 @@ class MainWindow(QMainWindow):
if text is not None: if text is not None:
self.prevLabelText = self.stringBundle.getString('tempLabel') self.prevLabelText = self.stringBundle.getString('tempLabel')
shape = self.canvas.setLastLabel(text, None, None, None) # generate_color, generate_color
if self.kie_mode: if self.kie_mode:
key_text, _ = self.keyDialog.popUp(self.key_previous_text) key_text, _ = self.keyDialog.popUp(self.key_previous_text)
if key_text is not None: if key_text is not None:
...@@ -1217,9 +1218,9 @@ class MainWindow(QMainWindow): ...@@ -1217,9 +1218,9 @@ class MainWindow(QMainWindow):
self.keyList.addItem(item) self.keyList.addItem(item)
rgb = self._get_rgb_by_label(key_text, self.kie_mode) rgb = self._get_rgb_by_label(key_text, self.kie_mode)
self.keyList.setItemLabel(item, key_text, rgb) self.keyList.setItemLabel(item, key_text, rgb)
self._update_shape_color(shape)
self.keyDialog.addLabelHistory(key_text) self.keyDialog.addLabelHistory(key_text)
else:
shape = self.canvas.setLastLabel(text, None, None, None) # generate_color, generate_color
self.addLabel(shape) self.addLabel(shape)
if self.beginner(): # Switch to edit mode. if self.beginner(): # Switch to edit mode.
...@@ -1236,7 +1237,7 @@ class MainWindow(QMainWindow): ...@@ -1236,7 +1237,7 @@ class MainWindow(QMainWindow):
self.canvas.resetAllLines() self.canvas.resetAllLines()
def _update_shape_color(self, shape): def _update_shape_color(self, shape):
r, g, b = self._get_rgb_by_label(shape.label) r, g, b = self._get_rgb_by_label(shape.key_cls, self.kie_mode)
shape.line_color = QtGui.QColor(r, g, b) shape.line_color = QtGui.QColor(r, g, b)
shape.vertex_fill_color = QtGui.QColor(r, g, b) shape.vertex_fill_color = QtGui.QColor(r, g, b)
shape.hvertex_fill_color = QtGui.QColor(255, 255, 255) shape.hvertex_fill_color = QtGui.QColor(255, 255, 255)
...@@ -1245,8 +1246,8 @@ class MainWindow(QMainWindow): ...@@ -1245,8 +1246,8 @@ class MainWindow(QMainWindow):
shape.select_fill_color = QtGui.QColor(r, g, b, 155) shape.select_fill_color = QtGui.QColor(r, g, b, 155)
def _get_rgb_by_label(self, label, kie_mode): def _get_rgb_by_label(self, label, kie_mode):
shift_auto_shape_color = 0 # use for random color shift_auto_shape_color = 2 # use for random color
if kie_mode: if kie_mode and label != "None":
item = self.keyList.findItemsByLabel(label)[0] item = self.keyList.findItemsByLabel(label)[0]
label_id = self.keyList.indexFromItem(item).row() + 1 label_id = self.keyList.indexFromItem(item).row() + 1
label_id += shift_auto_shape_color label_id += shift_auto_shape_color
...@@ -1816,7 +1817,7 @@ class MainWindow(QMainWindow): ...@@ -1816,7 +1817,7 @@ class MainWindow(QMainWindow):
def currentPath(self): def currentPath(self):
return os.path.dirname(self.filePath) if self.filePath else '.' return os.path.dirname(self.filePath) if self.filePath else '.'
def chooseColor1(self): def chooseColor(self):
color = self.colorDialog.getColor(self.lineColor, u'Choose line color', color = self.colorDialog.getColor(self.lineColor, u'Choose line color',
default=DEFAULT_LINE_COLOR) default=DEFAULT_LINE_COLOR)
if color: if color:
...@@ -2206,8 +2207,8 @@ class MainWindow(QMainWindow): ...@@ -2206,8 +2207,8 @@ class MainWindow(QMainWindow):
line_color=s.line_color.getRgb(), line_color=s.line_color.getRgb(),
fill_color=s.fill_color.getRgb(), fill_color=s.fill_color.getRgb(),
ratio=[[int(p.x()) / width, int(p.y()) / height] for p in s.points], # QPonitF ratio=[[int(p.x()) / width, int(p.y()) / height] for p in s.points], # QPonitF
difficult=s.difficult,# bool difficult=s.difficult, # bool
key_cls=s.key_cls,# bool key_cls=s.key_cls, # bool
) )
# lock # lock
......
...@@ -33,13 +33,9 @@ class UniqueLabelQListWidget(EscapableQListWidget): ...@@ -33,13 +33,9 @@ class UniqueLabelQListWidget(EscapableQListWidget):
def setItemLabel(self, item, label, color=None): def setItemLabel(self, item, label, color=None):
qlabel = QtWidgets.QLabel() qlabel = QtWidgets.QLabel()
if color is None: if color is None:
qlabel.setText("{}".format(label)) qlabel.setText(f"{label}")
else: else:
qlabel.setText( qlabel.setText('<font color="#{:02x}{:02x}{:02x}">●</font> {} '.format(*color, label))
'{} <font color="#{:02x}{:02x}{:02x}">●</font>'.format(
label, *color
)
)
qlabel.setAlignment(Qt.AlignBottom) qlabel.setAlignment(Qt.AlignBottom)
item.setSizeHint(qlabel.sizeHint()) item.setSizeHint(qlabel.sizeHint())
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册