以下是 透明控件的实现.
假设透明控件为TransLabel:
重载paintEvent
在TransLabel类中
void TransLabel::setGroundPixmap(QPixmap groundPixmap)
{
GroundPixmap = groundPixmap;
}
void TransLabel::paintEvent(QPaintEvent *paintEvent)
{
QPainter paint;
paint.begin(this );
paint.drawPixmap(rect(),GroundPixmap);
paint.setPen(TextColor); //控件上字体显示的颜色
paint.drawText(xOrigin, yOrigin,QString::fromUtf8(labelText)); // label为所要显示的文字
paint.end();
}
使用:
在主窗体中
backGround = QPixmap::grabWidget(this,x,y ,w, h); //x, y,为控件的左上角的x,y坐标, w,h为控件的width, height
saveItem= new TransLabel(this);
saveItem.setGeometry(QRect(x, y, w, h));
saveItem.setGroundPixmap(backGround);
假设透明控件为TransLabel:
重载paintEvent
在TransLabel类中
void TransLabel::setGroundPixmap(QPixmap groundPixmap)
{
GroundPixmap = groundPixmap;
}
void TransLabel::paintEvent(QPaintEvent *paintEvent)
{
QPainter paint;
paint.begin(this );
paint.drawPixmap(rect(),GroundPixmap);
paint.setPen(TextColor); //控件上字体显示的颜色
paint.drawText(xOrigin, yOrigin,QString::fromUtf8(labelText)); // label为所要显示的文字
paint.end();
}
使用:
在主窗体中
backGround = QPixmap::grabWidget(this,x,y ,w, h); //x, y,为控件的左上角的x,y坐标, w,h为控件的width, height
saveItem= new TransLabel(this);
saveItem.setGeometry(QRect(x, y, w, h));
saveItem.setGroundPixmap(backGround);