QPixmap,如何确保它始终位于顶部'

时间:2017-11-27 12:04:25

标签: c++ qwidget qpixmap

对于小工具,我可以致电'提高'这使小部件保持在其他任何东西之上,但这似乎不适用于任何渲染的QPixmap。

如何确保QPixmap保留在其他任何内容之上?

在我的paintEvent函数中:

    QPainter objPainter(this);

    if ( strImage.isEmpty() != true ) {
        qint16 int16NudgeImageX = mpobjNode->int16GetAttr(clsXML::mscszAttrNudgeImageX)
              ,int16NudgeImageY = mpobjNode->int16GetAttr(clsXML::mscszAttrNudeImageY);
        QPixmap pmImage(":/" + strImage);
        QSize szImage = pmImage.size();
        QPoint ptImage(rctGeom.center().x() - (szImage.width() / 2) + int16NudgeImageX
                      ,rctGeom.center().y() - (szImage.height() / 2) + int16NudgeImageY);
        QRect rctImage(ptImage, szImage);
        objPainter.drawPixmap(rctImage, pmImage);
    }

2 个答案:

答案 0 :(得分:3)

QPixmap不是小部件(没有父级,也没有布局)。

  

QPixmap类是一个离屏图像表示,可用作绘图设备。

使用QLabel与父(和布局)

一起使用
QLabel* label = new QLabel(parent);
label->setPixmap(pixmap);

答案 1 :(得分:1)

如果您想确保您的QPixmap被绘制在窗口小部件中的所有其他内容之上,只需将其绘制到最后。 请记住,其他小部件可能会在您的小部件上方绘制。