zoukankan      html  css  js  c++  java
  • paip.提升用户体验控件透明的设置

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


    作者Attilax ,  EMAIL:1466519819@qq.com 
    来源:attilax的专栏
    地址:http://blog.csdn.net/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实现透明控件 - 梁锦明的专栏 - 博客频道 - CSDN.NET.htm
  • 相关阅读:
    同时实现同时只允许一个人登录系统 dodo
    比较C#中的readonly与const (转) dodo
    iframe,Frame中关于Session丢失的解决方法 dodo
    sqlserver数据库同步解决方案 dodo
    利用C#调用WINRAR实现压缩与解压 dodo
    .net打包自动安装数据库 dodo
    关于sqlserver packet size dodo
    真正生成高质量不变形缩略图片 dodo
    Datagrid列表控件使用 dodo
    NUnit学习之VS.net 2005篇(转) dodo
  • 原文地址:https://www.cnblogs.com/attilax/p/15199499.html
Copyright © 2011-2022 走看看