QPixmap,如何确定它是'always on top'
QPixmap, how to make sure it is 'always on top'
对于小部件,我可以调用 'raise',它使小部件位于其他任何东西之上,但这似乎不适用于任何渲染的 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);
}
QPixmap 不是小部件(没有父级,也没有布局)。
The QPixmap class is an off-screen image representation that can be used as a paint device.
使用 QLabel 与父级(和布局)一起使用
QLabel* label = new QLabel(parent);
label->setPixmap(pixmap);
如果您想确保您的 QPixmap 绘制在小部件内所有其他内容之上,只需最后绘制即可。
请记住,其他小部件可能会绘制在您的小部件上方。
对于小部件,我可以调用 'raise',它使小部件位于其他任何东西之上,但这似乎不适用于任何渲染的 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);
}
QPixmap 不是小部件(没有父级,也没有布局)。
The QPixmap class is an off-screen image representation that can be used as a paint device.
使用 QLabel 与父级(和布局)一起使用
QLabel* label = new QLabel(parent);
label->setPixmap(pixmap);
如果您想确保您的 QPixmap 绘制在小部件内所有其他内容之上,只需最后绘制即可。 请记住,其他小部件可能会绘制在您的小部件上方。