Qml——Button元素

1.Qml中的Button元素和Qt中的QPushButton类似,它的基类是AbstractButton,而AbstractButton的子元素除了Button外,还有CheckBox、DelayButton等按钮相关元素

2.AbstractButton基类

(1)为Button提供了下面属性:

  • autoRepeat:bool,默认为false,如果为true,则鼠标按下后会一直发送onClicked()信号,并不会发出pressAndHold()(按下并持续按住)信号,如果为true,则可以通过autoRepeatDelay和autoRepeatInterval来设置延时和间隔,比如播放器快进按钮,就需要重复按下功能
  • autoRepeatDelay:int,默认为300,用来设置自动重复的初始延迟(以毫秒为单位),从用户按下按钮开始,到第一次触发自动重复事件之间需要等待的时间
  • autoRepeatInterval:int,默认为100,用来设置毫秒内保持自动重复的间隔(以毫秒为单位),后续每一次触发之间的时间间隔

3.checked、pressed、down的区别

  • checked:逻辑开关,常用于CheckBox、Switch或可切换按钮,表示业务逻辑上的选择结果
  • pressed:物理按压状态,表示按钮此刻是否正被物理按下
  • down:down 会跟随 pressed 的值,所以按下时它自动为 true,松开后为 false。但它与 pressed 的关键区别在于:down 可以被手动设置

4.Button的自定义颜色和背景

复制代码
Item{
        anchors.fill: parent
        focus: true
        Button{
            id: btn
            text: "button"
            contentItem: Label{
                text: parent.text
                font: parent.font
                color: parent.down ? "blue" : "green"
                horizontalAlignment: Text.AlignHCenter //文本在水平方向居中对齐
                verticalAlignment: Text.AlignVCenter //文本在垂直方向居中对齐
                elide: Text.ElideRight //省略右边的文字
            }
            background: Rectangle{
                implicitWidth: 100
                implicitHeight: 40
                color: parent.down ? "white" : "red"
                radius: 7
                border.width: 2
                border.color: parent.down ? "#E5E5E5" : "#8C8D8D"
            }
        }
    }

运行结果:

相关推荐
codigger44 分钟前
前端没有被杀死,被杀死的是"只会把设计稿变成页面"
前端·ai·ai编程·编程语言·全栈·#人工智能
艺杯羹1 小时前
本地优先架构避坑:从重度云端依赖到客户端算力下沉与边缘自治实战
前端·系统架构·本地优先
transformer1 小时前
用 TRAE 给 Git 教程站补上第七个模块:一次真实的增量开发记录
前端
fengci.1 小时前
CTF2刷题记录(困难部分)
android·开发语言·前端·学习·php
计算机魔术师1 小时前
AI证伪了数学家信了几十年的假设,但物理那道题只答了一半
前端
vipxieliang1 小时前
JavaScript 深浅拷贝全解析:从 JSON 到 structuredClone
前端·javascript
jerrywus1 小时前
DeepSeek Harness 和 Pi Agent 怎么选?先想想你愿意折腾什么
前端·agent·deepseek
货拉拉技术1 小时前
一句话叫车:货拉拉小程序 AI 叫车实战
前端·agent·ai编程
yunyi1 小时前
给桌面客户端做下载加速:从「桶直接公开」到「边缘优先、源站兜底」的三代演进
前端·后端