Qt quick中,控件阴影效果

这里写图片描述

import QtQuick 2.0
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
import QtGraphicalEffects 1.0  
//使用背景色的按钮
Item {

        width: 320;
        height: 480;
        Button{
                id:btn;
                height: 40;
                width:100;
                anchors.left: parent.left
                text:"按钮";
                style:component_btnstyle;//注意 用Component封装了!否则错误
               layer.enabled: true  
               layer.effect: DropShadow {
                   transparentBorder: true//绘制边框阴影
                   color: "#80000000";
                   radius: 15.0;
                   id:drop;

                   //cached: true;
                   horizontalOffset: 0;
                   verticalOffset: 0;
                   samples: 16;
                   smooth: true;
                            }

        }


        Component {
            id: component_btnstyle
            ButtonStyle{
                id:btnstyle;

                background:Rectangle{
                    id:rect;
                    width: control.windth
                    height: control.height;
                    color:setcolor(control)
                     radius:2;
                    border.color: "#ccc"
                    antialiasing: true 
                    Rectangle {
                    //再嵌套一层矩形 可用作内边框 颜色透。比用border灵活
                        anchors.fill: parent
                        anchors.margins: 1
                        color: "transparent"
                        antialiasing: true
                        visible: !control.pressed  //点击的时候隐藏
                        border.color: "#aaffffff"
                        radius: height/2

                    }



                }
            }
        }


function setcolor(mcontrol)
{
    if(mcontrol.pressed===true)
    {
   return "#ccc";
    }

     return "white"

}




}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值