<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div><font size="2"><span style="font-size:11pt">
<div>
<blockquote style="border-color: rgb(200, 200, 200); border-left: 3px solid rgb(200, 200, 200); padding-left: 1ex; margin-left: 0.8ex; color: rgb(102, 102, 102);" itemscope="" itemtype="https://schemas.microsoft.com/QuotedText">
<span style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt"></span>
<div></div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>From:</b> Phil Thompson <phil@riverbankcomputing.com></font><br>
</div>
<div dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>Sent:</b> Tuesday, July 19, 2022 4:21 PM<br>
<b>To:</b> ekhumoro <ekhumoro@gmx.com><br>
<b>Cc:</b> pyqt@riverbankcomputing.com <pyqt@riverbankcomputing.com><br>
<b>Subject:</b> Re: PyQt6 QAction menu/setMenu?</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt">
<div class="PlainText">On 18/07/2022 11:31, ekhumoro wrote:<br>
> On 18/07/2022 07:19, Maurizio Berti wrote:<br>
>> I believe I can understand the reason for this: having a custom <br>
>> QWidgetAction that *also* acts as an item for a submenu.<br>
>> I realize this is quite a "fringe" case, but it also seems reasonable.<br>
> <br>
> That is one genuine use-case. But the more general problem is: how to<br>
> set a menu on a *subclass* of QAction? AFAICS,<br>
> this is currently impossible without QAction.setMenu(), since none of<br>
> the other APIs will preserve the type. For example:<br>
> <br>
>     submenu = QMenu()<br>
>     action = QMenu.addMenu(submenu)<br>
> <br>
> just returns a plain QAction via QMenu.menuAction(), which is<br>
> read-only. ISTM that Qt has deprecated an API without<br>
> first providing an alternative code path. The Qt docs strongly advise<br>
> against using setMenu() in new code, but for some<br>
> genuine use-cases there really is no alternative. Or at least, I can't<br>
> see one - please someone correct me if I am wrong!<br>
> <br>
> It was suggested in Qt code review that something like<br>
> QMenu.setMenuInAction() might be added at some point - which<br>
> *would* solve the problem. But what are users supposed to do in the<br>
> meantime? For anyone porting from [Py]Qt5 who has an<br>
> extensive menu system based on subclasses of QAction, this issue seems<br>
> to be a significant blocker.<br>
<br>
I decided it would be quicker to implement menu() and setMenu() than to <br>
work out whether they were really needed.<br>
<br>
Phil</div>
</span></font></div>
</blockquote>
<div class="elementToProof"><span style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">โ€‹Excellent, thank you ๐Ÿ‘๐Ÿ‘๐Ÿ‘</span></div>
<div class="elementToProof"><br>
</div>
<div class="elementToProof">Regards,<br>
</div>
<div class="elementToProof">Matic<br>
</div>
</div>
</span></font></div>
</body>
</html>