Windows标题栏消失使用QDockWidget——qbackingstore::flush()调用非暴露窗口



我在使用QDockWidget时遇到了一个奇怪的问题:

my essential code:

void iMainWindow::createDockWindows()
 {
    camera = cvCreateCameraCapture(0);
assert(camera);
QDockWidget *dock = new QDockWidget(tr("2D Camera"), this);
dock->setAllowedAreas(Qt::RightDockWidgetArea);
pixmapLabel = new MyCameraWindow(camera, dock);//class MyCameraWindow : public QWidget
dock->setWidget(pixmapLabel);
addDockWidget(Qt::RightDockWidgetArea, dock);
 }

当我运行程序时,结果是正常的

但是,如果我把dock部分拖到外面,窗口标题栏就消失了。

参考图片和我的解释

此外,将dock小部件拖到外部后,将显示命令窗口Qbackingstore::flush()调用非暴露窗口

如何保持窗口的标题栏后拖出的dock小部件?

假设MyCameraWindow是(或包含)一个QGLWidget,那么您就遇到了我在这里报告的一个bug: https://bugreports.qt-project.org/browse/QTBUG-29359。没有变通办法,我知道(在Qt 5.0.0)

最新更新