Can anyone tell me about  QWindow::setTransientParent()? When building with Qt 
5 I keep seeing warnings:

 void QWindow::setTransientParent(QWindow *) QWidgetWindow(0x118c39a10, name = 
"QWidgetClassWindow") must be a top level window.

One situation where I see it is on Macintosh:

Our application can make a 3D graph window that uses OpenGL calls to draw. The 
OpenGL context is implemented via a QGLWidget. The  QGLWidget is contained in a 
QWidget that is itself contained in a QWidget that is (usually) a top-level 
window.

I see the warning when calling new QMenu(QGLWidget *). Here's a (truncated) 
stack trace (GizmoWD is our class, of course):

0       QWindow::setTransientParent(QWindow*)   qwindow.cpp     1131    
0x10969ac1a     
1       QWidgetPrivate::setParent_sys(QWidget*, QFlags<Qt::WindowType>) 
qwidget.cpp     10516   0x10898b528     
2       QWidget::setParent(QWidget*, QFlags<Qt::WindowType>)    qwidget.cpp     
10375   0x108971b07     
3       QWidgetPrivate::init(QWidget*, QFlags<Qt::WindowType>)  qwidget.cpp     
1179    0x10896fe3c     
4       QWidget qwidget.cpp     1026    0x1089701a9     
5       QMenu   qmenu.cpp       1333    0x108b3468f     
6       QMenu   qmenu.cpp       1336    0x108b3460d     
7       GizmoWD::init(char const*, int) GizmoWD.cpp     90      0x100cb58f9     
8       doNewGizmo(GizmoWD**, char const*, char*, wDataClass*, 
wdChildInfo::hostRectType, WMRect*, int, int, int)       GizmoBuiltInOps.cpp    
 279     0x100c81f7a     

In tracing into this, I see that QGLWidget requires a WinID. The QWindow * 
being passed to setTransientParent() is the QGLWidget. The QWindow whose 
setTransientParent() method was called is the QMenu.

I haven't seen any obvious problems that I can trace to this, but maybe I'm 
missing something.


I also see it on Windows in some other situations.


My apologies for a somewhat vague and abstruse question. I'm trying to 
understand the warning, but I don't have an obvious place to start. Thanks for 
any light you can shed!

-John

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

Reply via email to