代码之家  ›  专栏  ›  技术社区  ›  SPlatten

QPixmap,如何确保它“始终处于顶部”

  •  0
  • SPlatten  · 技术社区  · 7 年前

    对于小部件,我可以称之为“raise”,它将小部件置于其他任何东西之上,但这似乎不适用于任何渲染的QPixmap。

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

    在my 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 回复  |  直到 7 年前
        1
  •  3
  •   Captain Giraffe    7 年前

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

    QPixmap类是一种屏幕外图像表示,可以用作绘制设备。

    使用QLabel与父级(和布局)一起使用

    QLabel* label = new QLabel(parent);
    label->setPixmap(pixmap);
    
        2
  •  1
  •   Mailerdaimon    7 年前

    如果你想确保你的QPixmap被绘制在你的小部件内的所有其他东西之上,只需最后绘制它。 请记住,其他小部件可能会绘制在您的小部件上方。