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
  • 相关阅读:
    转载:SqlServer数据库性能优化详解
    复杂事件处理技术概览(一)
    Netty : writeAndFlush的线程安全及并发问题
    如何在RCP程序中添加一个banner栏
    AChecker + Selenium2对需要登录的页面进行自动化可访问性测试
    5分钟开启Esper之旅
    使SWT/JFace支持跨平台
    Ubuntu上Docker安装Trouble Shooting
    使Docker Container支持运行SWT程序
    Xcode5中如何切换Storyboards为xib
  • 原文地址:https://www.cnblogs.com/attilax/p/15199499.html
Copyright © 2011-2022 走看看