Qt实现透明

来源:互联网 发布:网络直播合同范本 编辑:程序博客网 时间:2024/06/14 05:13

Qt中实现透明有不少种方法,这儿说4种


1、设置窗体的背景色


在构造函数里添加代码,需要添加头文件qpalette或qgui
QPalette pal = palette();  
pal.setColor(QPalette::Background, QColor(255,0,0,0) );  
setPalette(pal); 


这里主要是通过设置窗体的背景色来实现,将背景色设置为全透,即RGBA的最后一位为0;
效果:
窗口整体透明,但窗口控件不透明,QLabel控件只是字显示,控件背景色透明;
窗体客户区完全透明。


2、在MainWindow窗口的构造函数中使用如下代码 


this->setAttribute(Qt::WA_TranslucentBackground, true);  

   效果:
窗口变透明,label也变透明,看不到文字,但是其它控件类似textEdit、comboBox就不会透明,实现了窗口背景透明。


3、在MainWindow窗口的构造函数中使用如下代码 


this->setWindowOpacity(level);其中level的值可以在0.0~1.0中变化。
   效果:
窗口变成透明的,但是所有控件也是一样变成透明。

例如this->setWindowOpacity(0.5);



4.窗口整体不透明,局部透明:


在Paint事件中使用Clear模式绘图。
void TestWindow::paintEvent( QPaintEvent* ) 
{  
    QPainter p(this); 
    p.setCompositionMode( QPainter::CompositionMode_Clear ); 
    p.fillRect( 10, 10, 300, 300, Qt::SolidPattern );  
}  

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 电脑上找不到本地连接怎么办 网络无访问权限怎么办 电脑无网络访问怎么办 xp连不上网怎么办 xp系统本地连接不见了怎么办 电脑xp系统本地连接怎么办 xp系统本地连接失败怎么办 xp系统找不到本地连接怎么办 台式电脑连不上网络怎么办 win7局域网要密码怎么办 xp网络不能上网怎么办 台式电脑连宽带怎么办 win7宽带813错误怎么办 电脑不显示本地连接怎么办 w7宽带连接不了怎么办 网络接收器坏了怎么办 电脑网页打开慢怎么办 win10无法添加打印机怎么办 2018杭州禁摩怎么办 中山个人怎么办社保卡 昆山房产证丢了怎么办 于一机交宽带费怎么办 租房子的怎么办宽带 乐才注册不了怎么办 分期乐登录不了怎么办 股票忘记交易密码怎么办 信用卡交易密码忘记怎么办 乐购超市怎么办会员 手机分期付款0首付怎么办 首付手机违约了怎么办 买了假东西怎么办 pk10滚雪球挂了怎么办 好彩投彩票闪退怎么办 yeezy买小了怎么办 yeezy斑马变黄了怎么办 yeezy买大了怎么办 聚宝商城被骗怎么办 电瓶车碟刹抱死怎么办 电动车分期不还怎么办 车壳子凹进去怎么办 电车电瓶不耐用怎么办