<div dir="ltr"><div>As the documentation about the <a href="https://doc.qt.io/qt-6/qwidget.html#styleSheet-prop">stylesheet property</a> explains, that property holds the widget's style sheet, meaning that its "setStyleSheet()" setter always <b>overwrites</b> it.</div><div><br></div><div><div>When you call setValue() on a widget (for instance, a spin box) you
 certainly do not expect it to sum that value to the current one, do 
you?<br></div></div><div>Similarly, calling setStyleSheet() then does <b>not</b> "update" the existing QSS, but always applies the new given one, completely discarding and ignoring any previous value. Besides, it's not called "updateStyleSheet".<br></div><div><br></div><div>Which obviously makes sense.</div><div>Suppose that you call it once with a complex set of rules that are applied differently depending on the combination of those rules (for instance, :hover and :disabled): how would you eventually update/remove/amend those rules reliably?</div><div>That may be achievable in DOM with appropriate scripting or libraries, but that's not the scope (or the implementation) of QSS, which only <i>inherit</i> the concepts of the CSS syntax.<br></div><div><br></div><div>You *may* consider updating the current QSS by doing something like this:</div><div><br></div><div><span style="font-family:monospace">widget.setStyleSheet(widget.styleSheet() + '/* some new style sheet */')</span></div><div><br></div><div>Still, this means that the parsing cannot directly take care of duplicate properties, resulting in a full reparse of the whole style sheet every time the function is called, possibly causing extreme and completely unnecessary overhead. The QSS parser is relatively fast, but not that fast, and shouldn't be misused; and doing something like this in sequential calls wouldn't make any sense at all.<br></div><div><br></div><div><div>If you want to apply a QSS with multiple rules, you must do that within a *single* call to setStyleSheet.</div><div><br></div><div><span style="font-family:monospace">self.lista_progress[a].</span><span style="font-family:monospace">setStyleSheet("""</span></div><div><span style="font-family:monospace">    QProgressBar {</span></div><div><span style="font-family:monospace">        background-color: black;</span></div><div><span style="font-family:monospace">    }</span></div><div><span style="font-family:monospace">    QProgressBar::</span><span style="font-family:monospace">chunk {</span></div><div><span style="font-family:monospace">        background-color: green;</span></div><div><span style="font-family:monospace">    }</span></div><div><span style="font-family:monospace">""")</span></div><div><br></div><div>Cheers,</div><div>MaurizioB<br></div><div><br></div><div>PS: please note that this mailing list is aimed at aspects that are strictly involved to the PyQt library and issues specifically related to it, not the general Qt API: your question is about Qt behavior, not that of this Python binding. Consider posting such questions on related websites (eg. the Qt forum) or on services such as StackOverflow, as similar questions are often ignored here (I just answered because it's Ferragosto e, vabbè, sticazzi ;-) ).<br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il giorno gio 8 ago 2024 alle ore 12:26 Luca Bertolotti <<a href="mailto:luca72.bertolotti@gmail.com">luca72.bertolotti@gmail.com</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello<div>This is my code:</div><div>self.lista_progress[a].setMaximum(100)<br>self.lista_progress[a].setValue(int(v))<br>self.lista_progress[a].setStyleSheet("QProgressBar {background-color: black;}")<br>self.lista_progress[a].setStyleSheet("QProgressBar::chunk {background-color: green;}")<br></div><div><br></div><div>Where self.lista_progress is a list of progressbar , but only the line</div><div>self.lista_progress[a].setStyleSheet("QProgressBar::chunk {background-color: green;}")<br></div><div>work</div><div>the line</div><div>self.lista_progress[a].setStyleSheet("QProgressBar {background-color: black;}")<br></div><div>don't make anything</div><div>What is wrong</div></div>
</blockquote></div><br clear="all"><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature">È difficile avere una convinzione precisa quando si parla delle ragioni del cuore. - "Sostiene Pereira", Antonio Tabucchi<br><a href="http://www.jidesk.net" target="_blank">http://www.jidesk.net</a></div>