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内部。
最后自己摸索了两个解决方法:
1.设置label的位置,即添加代码
imgLabel->setGeometry(0, 20, image.width(), image.height());
运行效果:
怎么硕呢,感觉可能只是表面上解决了问题。。。先观望一下
2.又看了一下别人的代码,发现原因是我没有把label添加到dockwidget中。。。
所以其实只要添加一句代码:
dock_Image->setWidget(imgLabel);
这样就能解决问题,运行效果为: