qt - QMainWindow and ownership takeover policy -


i stumbled upon in documentation qmainwindow::setmenubar(qmenubar * menubar):

note: qmainwindow takes ownership of menubar pointer , deletes @ appropriate time.

example code (in method of class deriving qmainwindow):

qmenubar * menubar = new qmenubar(this); setmenubar(menubar) // <-- transfer ownership // use menubar pointer add actions, menus, , not 

can still rely on local pointer qmenubar after call setmenubar? mean, guaranteed?

when delete qmainwindow derived class, qmenubar object deleted because qmainwindow set parent when constructing - policy lies in later "ownership takeover" through setmenubar other copy of reference/pointer?

yes, it's safe use pointer long object took ownership alive.

the fact qmainwindow "takes ownership" of menu means take care of deleting when not needed anymore. common qt, see object trees & ownership documentation.

that being said, sample code rewritten this:

qmenubar *menu = menubar(); 

this create empty menu if necessary, don't have worry transfer of ownership. call member function whenever need act on windows's menu bar.


Comments

Popular posts from this blog

Java sticky instances of class com.mysql.jdbc.Field aggregating -