Important: Please read the Qt Code of Conduct -

Qt5 + QDockWidget + Widget OpenGL

  • Hi, I work with an 3D Engine, I plug the 3D rendering inside a QWidget.
    The application contains two ToolBar (top and bottom) and many DockWidget.
    The 3D Widget is add to the QMainWindow.
    This part work perfectly with Qt 4.8.

    I try to use Qt 5.1, but unfortunately, I have some trouble, after create all the interface, the QDockWidget and QToolBar are not responding, except for the bottom toolbar. I try something, if i put all the toolbar at the bottom and put the QDockWidget to the right or floating, the widget works.

    I m working on OSX 10.8.4 with Qt 5.1



  • I too have had a lot of problems with QDockWidget on OS X while porting to Qt 5.1.1. I am using a QGLWidget in the center, but while troubleshooting, I believe I disabled that and still had problems. The top, left of the window becomes unresponsive to the mouse. Eventually, I found that things kind of worked if I do not hide the dockwidgets, especially upon launch. Also, I found floating a dockwidget makes the floating window blank! Even when I disabled floating and moving, I was able to trick the UI into letting me float the dock! I spent a lot of time turning off big chunks of code to narrow down the source of - what I was sure of is - my problem. But now I have given up, and I scrapped all of my dockwidgets (some forthcoming version). I ended up just using a couple of QSplitters to make a side- and bottom-bar UI design into which I have placed all of the dockwidget contents, each with a heading and close button. At least I know if I choose to move all of the UI to QML, then it will port easier as a sidebar design instead of dockwidget one. :o)

  • I did some searching on the bug tracker, and I found a few tickets with quite a few duplicates of each around the same issues (and around using winId(), which is what my app was doing when not using the QGLWidget). A couple of them have "app->setAttribute(Qt::AA_DontCreateNativeWidgetSiblings);" as a workaround - or partially so. I just reset my git branch back to where I still used QDockWidget, added that in my main.cpp before any UI is constructed, and it has made a huge improvement. Now, I need to do more testing to ensure it is stable, but according to the docs, you may be able to resolve some problems by applying Qt::WA_NativeWindow to some specific widgets where needed.

Log in to reply