From 318710c8e3da60d068d0bb6f042bb134c16c0b7b Mon Sep 17 00:00:00 2001 From: tzutalin Date: Wed, 8 Feb 2017 16:56:24 +0800 Subject: [PATCH] Draft version for supporting change background color --- labelImg.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/labelImg.py b/labelImg.py index 2b227c41..d2d7d5bd 100755 --- a/labelImg.py +++ b/labelImg.py @@ -183,6 +183,7 @@ class MainWindow(QMainWindow, WindowMixin): action = partial(newAction, self) quit = action('&Quit', self.close, 'Ctrl+Q', 'quit', u'Quit application') + open = action('&Open', self.openFile, 'Ctrl+O', 'open', u'Open image or label file') @@ -212,6 +213,8 @@ class MainWindow(QMainWindow, WindowMixin): 'Ctrl+L', 'color_line', u'Choose Box line color') color2 = action('Box &Fill Color', self.chooseColor2, 'Ctrl+Shift+L', 'color', u'Choose Box fill color') + color3 = action('Bakground Color', self.chooseColor3, + 'Ctrl+Shift+B', 'color', u'Choose background color') createMode = action('Create\nRectBox', self.setCreateMode, 'Ctrl+N', 'new', u'Start drawing Boxs', enabled=False) @@ -294,7 +297,7 @@ class MainWindow(QMainWindow, WindowMixin): # Store actions for further handling. self.actions = struct(save=save, saveAs=saveAs, open=open, close=close, - lineColor=color1, fillColor=color2, + lineColor=color1, fillColor=color2, backgroundColor=color3, create=create, delete=delete, edit=edit, copy=copy, createMode=createMode, editMode=editMode, advancedMode=advancedMode, shapeLineColor=shapeLineColor, shapeFillColor=shapeFillColor, @@ -303,7 +306,7 @@ class MainWindow(QMainWindow, WindowMixin): zoomActions=zoomActions, fileMenuActions=(open,opendir,save,saveAs,close,quit), beginner=(), advanced=(), - editMenu=(edit, copy, delete, None, color1, color2), + editMenu=(edit, copy, delete, None, color1, color2, color3), beginnerContext=(create, edit, copy, delete), advancedContext=(createMode, editMode, edit, copy, delete, shapeLineColor, shapeFillColor), @@ -355,6 +358,7 @@ class MainWindow(QMainWindow, WindowMixin): self.maxRecent = 7 self.lineColor = None self.fillColor = None + self.backgroundColor = None self.zoom_level = 100 self.fit_window = False @@ -370,6 +374,7 @@ class MainWindow(QMainWindow, WindowMixin): 'window/geometry': QByteArray, 'line/color': QColor, 'fill/color': QColor, + 'background/color': QColor, 'advanced': bool, # Docks and toolbars: 'window/state': QByteArray, @@ -385,6 +390,7 @@ class MainWindow(QMainWindow, WindowMixin): 'window/geometry': QByteArray, 'line/color': QColor, 'fill/color': QColor, + 'background/color': QColor, 'advanced': bool, # Docks and toolbars: 'window/state': QByteArray, @@ -410,6 +416,7 @@ class MainWindow(QMainWindow, WindowMixin): self.restoreState(settings.get('window/state', QByteArray())) self.lineColor = QColor(settings.get('line/color', Shape.line_color)) self.fillColor = QColor(settings.get('fill/color', Shape.fill_color)) + self.backgroundColor = QColor(settings.get('background/color', QColor(0, 0, 0, 0))) Shape.line_color = self.lineColor Shape.fill_color = self.fillColor @@ -853,6 +860,7 @@ class MainWindow(QMainWindow, WindowMixin): s['window/state'] = self.saveState() s['line/color'] = self.lineColor s['fill/color'] = self.fillColor + s['background/color'] = self.backgroundColor s['recentFiles'] = self.recentFiles s['advanced'] = not self._beginner if self.defaultSaveDir is not None and len(self.defaultSaveDir) > 1: @@ -1085,6 +1093,16 @@ class MainWindow(QMainWindow, WindowMixin): self.canvas.update() self.setDirty() + def chooseColor3(self): + color = self.colorDialog.getColor(self.backgroundColor, u'Choose background color', + default=DEFAULT_FILL_COLOR) + + if color: + self.backgroundColor = color + palette = QPalette(self) + palette.setColor(self.backgroundRole(), color) + self.setPalette(palette) + def deleteSelectedShape(self): yes, no = QMessageBox.Yes, QMessageBox.No msg = u'You are about to permanently delete this Box, proceed anyway?'