关于qt中label挡住了dockwidget的窗体标题
1.问题描述:
dock_Image = new QDockWidget(tr("图像"), this);
setCentralWidget(dock_Image);
imgLabel = new QLabel(dock_Image);
imgLabel->setScaledContents(true); // 设置QLabel自动适应图像大小
//dock_Image->raise();
QImage image = QImage(500, 500, QImage::Format_RGB32); // 新建图像
image.fill(qRgb(255, 255, 255)); // 全白
imgLabel->setPixmap(QPixmap::fromImage(image)); // 显示图像
imgLabel->resize(image.width(), image.height()); // 图像与imgLabel同大小
以上的代码就是搞了一个子窗口,然后又定义了一个label,用来显示图片(这里的图片我搞了一个白色的图像)。
本该是简单易懂的实现,但是运行出来显示的图片遮住了子窗口的标题?如下图
不知道大家有没有这个问题,我好像没怎么搜索到类似的问题,感觉应该是label和dockwidget两个属于同一级,而不是我理解的label定义在dockwidget内部。
最后自己摸索了两个解决方法:
2.解决方法
1.设置label的位置,即添加代码
imgLabel->setGeometry(0, 20, image.width(), image.height());
运行效果:
怎么硕呢,感觉可能只是表面上解决了问题。。。先观望一下
2.又看了一下别人的代码,发现原因是我没有把label添加到dockwidget中。。。
所以其实只要添加一句代码:
dock_Image->setWidget(imgLabel);
这样就能解决问题,运行效果为: