700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > paip.提升用户体验---控件透明的设置

paip.提升用户体验---控件透明的设置

时间:2019-05-03 09:55:26

相关推荐

paip.提升用户体验---控件透明的设置

paip.提升用户体验---控件透明的设置

作者Attilax , EMAIL:1466519819@

来源:attilax的专栏

地址:/attilax

1.透明图片背景 法

//

控件背景设为带透明通道的图片(用Photoshop可以生成),一般以PNP格式为好

这个ok

2.setAttribute(Qt::WA_TranslucentBackground, true);

//

ui->label_4->

有效

3.透明背景颜色方法

///

background-color: rgba(0,0,0,30);

有时要跟个透明图片背景 法一起使用才.生效

4.控件的背景动态座标法

/

3没这个功能。。。只能把控件的背景根

据插件的坐标,设置得和窗口的背景一样

就是如果控件在x1,y1这个点上,则在控件设置背景的时候,把使用到的那张背景图在控件的现实位置也设置为x1,y1的坐标

所谓控件透明,是指控件的背景与窗口的大背景是一样的。

如果控件不移动,则可以取窗口相应位置的背景图来做控件的背景,用 setBackgroudPixmap

如果控件可移动,那就要在移动的时候再重新取窗口相应位置的背景来重新设置控件背景。

原理如此,可以自己实现的

5. QPalette pal = palette();

.//

pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00));

// ui->label_4-> setPalette(pal);

QPixmap pixmapw("c:/img/dot.png");

// ui->label_4->setMask(pixmapw.mask());

6. 重绘方法:

/

重载paintEvent

假设透明控件为TransLabel:

重载paintEvent

在TransLabel类中

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();

}

参考

qt实现透明控件 - 梁锦明的专栏 - 博客频道 - .htm

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。