[PyKDE] PyQt4: setPaletteBackgroundColor

Patrick Stinson patrickkidd at gmail.com
Wed Feb 8 18:48:16 GMT 2006


If I change one of the to a QWidget (or QFrame) it doesn't work. Maybe we
are (or I am) missing a fundamental aspect to this 'role' concept.

        self.w2 = QFrame(self)
        self.w2.setFixedSize(100, 200)
        self.w2.setFrameStyle(QFrame.WinPanel)



On 2/8/06, V. Armando Sole <sole at esrf.fr> wrote:
>
> At 08:26 08/02/2006 -0900, Patrick Stinson wrote:
> >Yeah, I"m getting the same problem. If you set the role color for the
> >child widget, and set the role color for the parent widget, the child
> >widget just gets the color for the parent widget. This means that you
> >can't give child widgets their own color. For example, the following code
> >shows no red
>
> Funny this example works as expected:
>
> from PyQt4.QtCore import *
> from PyQt4.QtGui import *
>
> class AllGreen(QWidget):
>      def __init__(self):
>          QWidget.__init__(self)
>          layout = QVBoxLayout(self)
>
>          self.w1 = QLineEdit(self)
>          self.w2 = QLineEdit(self)
>          self.w3 = QLineEdit(self)
>
>          palette = self.palette()
>          role = self.backgroundRole()
>          palette.setColor(role, QColor('green'))
>          self.setPalette(palette)
>
>          palette1 = self.w1.palette()
>          role = self.w1.backgroundRole()
>          palette1.setColor(role, QColor('red'))
>          self.w1.setPalette(palette1)
>
>          palette2 = self.w2.palette()
>          role = self.w2.backgroundRole()
>          palette2.setColor(role, QColor('yellow'))
>          self.w2.setPalette(palette2)
>
>          palette3 = self.w3.palette()
>          role = self.w3.backgroundRole()
>          palette3.setColor(role, QColor('red'))
>          self.w3.setPalette(palette3)
>          layout.addWidget(self.w1)
>          layout.addWidget(self.w2)
>          layout.addWidget(self.w3)
>
> def testWidget():
>      import sys
>      a = QApplication(sys.argv)
>      QObject.connect(a,SIGNAL("lastWindowClosed()"),a,SLOT("quit()"))
>
>      w = AllGreen()
>      w.show()
>      a.exec_()
>
> if __name__ == "__main__":
>      testWidget()
>
> ************************************************************
> V. A. Solé
> ESRF - BLISS Group PHONE: +33 (0)4 76 88 25 84
> BP 220                     FAX:       +33 (0)4 76 88 25 42
> 38043 - Grenoble Cedex
> France
> ************************************************************
>
>


--
Patrick Kidd Stinson
http://pkaudio.sourceforge.net/
http://pksampler.sourceforge.net/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20060208/92ebde74/attachment.html


More information about the PyQt mailing list