<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">Wrong QProxyStyle method. Tip: to know the right method, search for menuitem in <a href="https://codebrowser.dev/qt6/qtbase/src/widgets/styles/qcommonstyle.cpp.html">https://codebrowser.dev/qt6/qtbase/src/widgets/styles/qcommonstyle.cpp.html</a></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">class Style(QProxyStyle):<br> def drawControl(self, element, option, painter, widget):<br> if element == QStyle.ControlElement.CE_MenuItem:<br> super().drawItemText(painter, option.rect, Qt.AlignmentFlag.AlignRight, option.palette, True, option.text, QPalette.ColorRole.ButtonText)<br> else:<br> return super().drawControl(element, option, painter, widget)</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Mon, Jun 9, 2025 at 11:14 AM John Sturtz <<a href="mailto:john@sturtz.org">john@sturtz.org</a>> wrote:<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 class="msg3428330920983289784">
<div>Hello again PyQt sages. Hoping for some insight here -- despite a few hours' time fiddling with this, I don't seem to even be getting past square one.<div><br></div><div>I'm trying to modify display of items in a <font face="Cascadia Code">QMenu</font> using <font face="Cascadia Code" size="3" style="font-size:16px">QProxyStyle</font>. Basically, I've defined a class named <font face="Cascadia Code" size="3" style="font-size:16px">Style</font> that derives from <font face="Cascadia Code" size="3" style="font-size:16px">QProxyStyle</font>, and re-implements <font face="Cascadia Code" size="3" style="font-size:16px">drawItemText()</font> (which, just for starters, tries to right-justify the menu item text).</div><div><br></div><div>I create a <font face="Cascadia Code" size="3" style="font-size:16px">QMenu</font> object, create an object of the <font face="Cascadia Code" size="3" style="font-size:16px">Style</font> class, and call <font face="Cascadia Code" size="3" style="font-size:16px">.setStyle()</font> to set it as the menu's style.</div><div><br></div><div>It may or may not be the case that my <font face="Cascadia Code" size="3" style="font-size:16px">drawItemText()</font> implementation successfully right-justifies the text. I'll never know, because it never gets called. What (probably really basic thing) am I missing?</div><div><br></div><div>Thanks! [short sample code attached]</div><div><br></div><div>/John</div></div></div></blockquote></div>