Hi Sean,

Widgets are normally positioned relative to their owner - the exception is popup menus, which are screen absolute.  I would expect a popup menu to automatically close when the title bar is clicked.  How have you implemented your captionPopupMenu?  Does it capture the mouse when it is visible?  It should close if the mouse is clicked anywhere outside its borders.  Since you've got a QPushButton, did you consider using its setMenu to achieve a similar result?

Regards, Tony


On 2/10/2018 4:11 AM, Murphy, Sean wrote:
My basic question is how do child widgets get moved or repainted when some 
ancestor of theirs moves?

Here's the more detailed issue, first the widget hierarchy:
QMainWindow
    CustomerHeaderTable (inherits from QTableWidget)
        CustomTableHeader (inherits from QHeaderView, allows you to put widgets 
in the header sections)
            dataConfigWidget (inherits from QWidget)
                QPushButton
                captionPopupMenu (inherits from QWidget, starts out hidden)

What I'm trying to accomplish is when the user presses the QPushButton, that a 
custom popup menu (the captionPopupMenu) appears aligned to the pushbutton. 
Right now I've got the initial alignment working just fine. The issue is when 
the popup is visible, if the user then grabs the application title bar and 
moves the entire main window around, the popup isn't moving with the 
application. So I figured I just need to update the captionPopupMenu's position 
in dataConfigWidget's moveEvent() to keep it positioned correctly. But it 
appears when the main window moves around, the dataConfigWidget's moveEvent() 
is never called - I put some qDebug() statements in there to verify. Same goes 
for paintEvent() - my child widgets aren't getting called when the ancestors 
move.

So I'm not sure what I need to trigger off from to detect when I need to 
reposition the menu. I feel like I'm missing something really obvious, but not 
seeing it on a Monday apparently.
Sean



This message has been scanned for malware by Forcepoint. www.forcepoint.com
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to