ColorString/ColorSelectionDialog.py

changeset 1
e1f013dc03bb
child 11
3b7ec819a55d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ColorString/ColorSelectionDialog.py	Sat Mar 22 15:36:57 2014 +0100
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2014 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to select a color by name.
+"""
+
+from PyQt4.QtGui import QDialog, QColor, QPixmap, QIcon
+
+from .Ui_ColorSelectionDialog import Ui_ColorSelectionDialog
+
+
+class ColorSelectionDialog(QDialog, Ui_ColorSelectionDialog):
+    """
+    Class implementing a dialog to select a color by name.
+    """
+    def __init__(self, selectedName="", parent=None):
+        """
+        Constructor
+        
+        @param selectedName name of the color to be selected initially
+            (string)
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        self.setupUi(self)
+        
+        for colorName in QColor.colorNames():
+            px = QPixmap(22, 22)    # icon size 22x22 pixels
+            px.fill(QColor(colorName))
+            self.colorComboBox.addItem(QIcon(px), colorName)
+        if selectedName:
+            self.colorComboBox.setCurrentIndex(
+                self.colorComboBox.findText(selectedName))
+        
+        msh = self.minimumSizeHint()
+        self.resize(max(self.size().width(), msh.width()), msh.height())
+    
+    def getColor(self):
+        """
+        Public method to retrieve the selected color name.
+        
+        @return color name (string)
+        """
+        return self.colorComboBox.currentText()

eric ide

mercurial