Qml实用技巧:将样式style从对象中独立出来,可使多个按钮加载同一个样式

本文介绍如何在QML中通过组件形式实现多个按钮共享同一套样式的方法,包括样式定义及应用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求

        多个按钮使用同一个样式

原理

        写成组件形式(在或不在当前文件中),需要样式时,Button加载style即可

代码

Item {
    Rectangle {
        width: 800;
        height: 640;
        Column {
            Button {
                id: btn;
                text: "testStyle1"; // 会被样式label中的text覆盖
                style: ButtonStyle {
                    background: Rectangle {
                        color: control.hovered?"#a0a0a0":"#c0c0c0";
                        border.width: control.pressed?2:1;
                        border.color: "white";
                    }
                    label: Label {
                        text: control.text; // 设置label样式后,按钮显示以此text为准
                        color: "black";
                        font.pixelSize: 24;
                        font.bold: true;
                    }
                }
            }
            Button {
                id: btn1;
                text: "testStyle2"
                style: btnStyle;
            }
            Button {
//                id: btn1;
                text: "testStyle3"
                style: btnStyle;
            }
       }
    }
    Component {
        id: btnStyle;
        ButtonStyle {
            background: Rectangle {
                color: control.hovered?"#a0a0a0":"#c0c0c0";
                border.width: control.pressed?2:1;
                border.color: "white";
            }
            label: Label {
                text: control.text; // 设置label样式后,按钮显示以此text为准
                color: "black";
                font.pixelSize: 24;
                font.bold: true;
            }
        }
    }
}

效果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长沙红胖子Qt(技术Q群4597637)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值