I new it! that worked for me<br><br><div><span class="gmail_quote">On 2/8/06, <b class="gmail_sendername">V. Armando Sole</b> &lt;<a href="mailto:sole@esrf.fr">sole@esrf.fr</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Gerard,<br><br>At 20:08 08/02/2006 +0100, Gerard Vermeulen wrote:<br>&gt;Please, read my mail again.&nbsp;&nbsp;You are trying to do something which you<br>&gt;cannot do without a cast in C++, because QWidget::palette() returns<br>
&gt;'const QPalette&amp;'.&nbsp;&nbsp;Python does not know about constness, and therefore<br>&gt;PyQt hands you a rope to hang yourself.<br>&gt;<br>&gt;The road to independent palettes reads:<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; palette = QPalette()
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; setColorRoles(palette)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; self.setPalette(palette)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; palette = QPalette()<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; setOtherColorRoles(palette)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; self.parentWidget().setPalette(palette)<br><br>As pointed out by &quot;David Boddie&quot; &lt;
<a href="mailto:david@boddie.org.uk">david@boddie.org.uk</a>&gt; :<br><br>[begin quote]<br><br>You can make the child widget visible by adding the following<br>line:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.w.setAutoFillBackground(True)<br><br>
Contents propagation is enabled by default in Qt 4.1.0. For custom<br>widgets where you reimplement QWidget's paintEvent(), you can do<br>various things to allow effects like partial transparency for child<br>widgets while still adding your own colour scheme. However, a plain
<br>QWidget has to draw itself, so this seems like the quickest way to<br>get what you want.<br><br>David<br>[end quote]<br><br>The missing&nbsp;&nbsp;call setAutoFillBackground(True) was the critical thing.<br><br>The code below works as intended.
<br><br><br>from PyQt4.QtCore import *<br>from PyQt4.QtGui import *<br><br>class AllGreen(QWidget):<br>&nbsp;&nbsp;&nbsp;&nbsp; def __init__(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QWidget.__init__(self)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout = QVBoxLayout(self)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.w1
 = QWidget(self)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.w1.setFixedSize(100, 100)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.w2 = QWidget(self)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.w2.setFixedSize(100, 100)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.w3 = QWidget(self)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.w3.setFixedSize(100, 100)<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; palette = self.palette()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; role = self.backgroundRole()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; palette.setColor(role, QColor('green'))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.setPalette(palette)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; palette = self.w1.palette()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; role = 
self.w1.backgroundRole()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; palette.setColor(role, QColor('red'))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.w1.setPalette(palette)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; palette = self.w2.palette()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; role = self.w2.backgroundRole()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; palette.setColor
(role, QColor('yellow'))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.w2.setPalette(palette)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; palette = self.w3.palette()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; role = self.w3.backgroundRole()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; palette.setColor(role, QColor('red'))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.w3.setPalette
(palette)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout.addWidget(self.w1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout.addWidget(self.w2)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout.addWidget(self.w3)<br><br>def testWidget():<br>&nbsp;&nbsp;&nbsp;&nbsp; import sys<br>&nbsp;&nbsp;&nbsp;&nbsp; a = QApplication(sys.argv)<br>&nbsp;&nbsp;&nbsp;&nbsp; QObject.connect
(a,SIGNAL(&quot;lastWindowClosed()&quot;),a,SLOT(&quot;quit()&quot;))<br><br>&nbsp;&nbsp;&nbsp;&nbsp; w = AllGreen()<br>&nbsp;&nbsp;&nbsp;&nbsp; w.w1.setAutoFillBackground(True)<br>&nbsp;&nbsp;&nbsp;&nbsp; w.w2.setAutoFillBackground(True)<br>&nbsp;&nbsp;&nbsp;&nbsp; w.w3.setAutoFillBackground(True)<br>
&nbsp;&nbsp;&nbsp;&nbsp; w.show()<br><br>&nbsp;&nbsp;&nbsp;&nbsp; a.exec_()<br><br>if __name__ == &quot;__main__&quot;:<br>&nbsp;&nbsp;&nbsp;&nbsp; testWidget()<br><br><br>Regards,<br><br>Armando<br><br>_______________________________________________<br>PyKDE mailing list&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:PyKDE@mats.imk.fraunhofer.de">
PyKDE@mats.imk.fraunhofer.de</a><br><a href="http://mats.imk.fraunhofer.de/mailman/listinfo/pykde">http://mats.imk.fraunhofer.de/mailman/listinfo/pykde</a><br></blockquote></div><br><br clear="all"><br>-- <br>Patrick Kidd Stinson
<br><a href="http://pkaudio.sourceforge.net/">http://pkaudio.sourceforge.net/</a><br><a href="http://pksampler.sourceforge.net/">http://pksampler.sourceforge.net/</a>