当前位置: 首页 > article >正文

QML Button 部件的使用

按钮也是程序开发中最经常用到的部件,当然其也是比较简单,只需要懂得最基本的操作即可;

Button {
    id: btn
    width: 100
    height: 50
}

生成一个最基本的按钮

text 属性可以设置按钮文本;
flat 属性设置为true时,只有鼠标按下时按钮才会显示出来;

当然,Button按钮也有 onClicked onPressed onReleased 槽函数;

Button {
    id: btn
    width: 100
    height: 50

    text: "按钮文本"

    // 鼠标按下时按钮才会显示
    flat: true

    onClicked: {
        console.log("onClicked")
    }
    onPressed: {
        console.log("onPressed")
    }
    onReleased: {
        console.log("onReleased")
    }
}

checkablechecked 都可以设置按钮按下属性;另外,当设置了checked后,会覆盖掉checkable;

简单来讲,就是按钮按下后,会有按下的效果,当点击别的按钮后按下效果才会消失;

但是需要将 autoExclusive 属性设置为true才可以!

autoExclusive  具有排他属性,在同一时间只允许一个按钮设置为check状态;举个不恰当的比喻:(按钮设置了这个属性,也就相当于加入到了一个组里面,相同组的按钮具有排他性)

Rectangle {
    Button {
        id: btn1
        width: 100
        height: 50
        // 设置按钮有按下的状态
        checkable: true
        // 排他属性,在同一时间只允许一个按钮设置为check状态
        // 不恰当的比喻:(按钮设置了这个属性,也就相当于加入到了一个组里面,相同组的按钮具有排他性)
        autoExclusive: true
    }
    Button {
        id: btn2
        width: 100
        height: 50
        y: 60
        // 设置按钮有按下的状态
        checkable: true
        // 排他属性,在同一时间只允许一个按钮设置为check状态
        autoExclusive: true
    }
    Button {
        id: btn3
        width: 100
        height: 50
        y: 120
        // 设置按钮有按下的状态
        checkable: true
        // 排他属性,在同一时间只允许一个按钮设置为check状态
        autoExclusive: true
    }
    Button {
        id: btn4
        width: 100
        height: 50
        y: 180
        // 设置按钮有按下的状态
        checkable: true
        // 没有设置排他属性
        //autoExclusive: true
    }
}

注意按钮4没有设置排他性;

就跟QT左侧菜单栏的按钮效果一样,也是有按下后的阴影效果;

autoRepeat 属性设置为true,可以在长按的时候,一直触发onClicked onPressed onReleased 槽函数;

autoRepeateDelay 属性设置长按后多少秒后触发槽函数;

autoRepeatInterval 属性设置每多少秒触发一次槽函数;

Button {
    id: btn
    width: 100
    height: 50
    text: "按钮文本"

    // 长按按钮,会一直触发onClicked和onPressed和onReleased槽函数
    autoRepeat: true
    // 鼠标按下,多少秒后开始触发onClicked和onPressed和onReleased槽函数
//        autoRepeateDelay: 2000
    // 每个多少秒触发一次onClicked和onPressed和onReleased槽函数
    autoRepeatInterval: 1000
    onClicked: {
        console.log("onClicked")
    }
    onPressed: {
        console.log("onPressed")
    }
    onReleased: {
        console.log("onReleased")
    }
}

down 属性,当鼠标按下时,此属性为true,当鼠标释放后,此属性为false;值得注意的是,鼠标按下和释放都会执行onDownChanged槽函数;

Button {
    id: btn
    width: 100
    height: 50

    text: "按钮文本"

    // down属性,当鼠标按下时,down为true,松开时,donw为false;鼠标按下松开都会触发
    onDownChanged: {
        console.log("onDownChanged", down, pressed)
    }
}

icon.source indicator 都可以给按钮设置图片;

Button {
    id: btn
    width: 100
    height: 50
    text: "按钮文本"

    // 加载图片
//        icon.source: "/qt.png"    // 这里没有设置成功,不知道为什么
    indicator: Image {
        id: ind
        anchors.fill: parent
        source: "/qt.png"
    }
}

Button 部件是没有color属性的,只能通过background属性,赋值一个item设置背景颜色;

Button {
    id: btn
    width: 100
    height: 50
    text: "按钮文本"

    // 按钮背景颜色,可通过background设置一个Rectangle处理
    background: Rectangle {
        anchors.fill: parent
        border.width: 5
        color: btn.pressed ? "gray" : "yellow"
        border.color: btn.pressed ? "red" : "pink"
    }

}

基本上来说,Button部件认识这些知识点就差不多了,其他的也不常用了!

完!


http://www.kler.cn/a/559001.html

相关文章:

  • Unity打包APK报错 using a newer Android Gradle plugin to use compileSdk = 35
  • Jupyter Notebook切换虚拟环境(Kernel管理)
  • 创建React项目的三个方式
  • 在MAC上面通过HomeBrew安装node和npm@指定版本
  • 【Winform】深入理解C#中的异常处理:以WinForms应用程序为例
  • Windows、Mac、Linux,到底该怎么选?
  • 计算机视觉算法
  • 从零开始玩转TensorFlow:小明的机器学习故事 4
  • Python OpenCV图像去模糊实战:离焦模糊的修复原理与Python实现
  • Windows平台使用cmake 链接动态库
  • 【SpringBoot教程】SpringBoot整合Caffeine本地缓存及Spring Cache注解的使用
  • 深入解析JVM垃圾回收机制
  • ASP.NET MVC 下载文件
  • Flutter最简单的路由管理方式Navigator
  • Windows11安装GPU版本Pytorch2.6教程
  • C进阶 自定义类型
  • mac 下 java 调用 gurobi 不能加载 jar
  • verilog测试平台设计与verilog的synthesis
  • 使用 CloudDM 和飞书流程化管理数据库变更审批
  • Swift Data 切片:data.subdata(in:) vs data[Range<Index>] 深度解析