您当前的位置: 首页 > 

令狐掌门

暂无认证

  • 5浏览

    0关注

    513博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

QML入门教程(2): QML Button用法介绍

令狐掌门 发布时间:2020-04-27 21:33:36 ,浏览量:5

       Button是很常见的控件,Qt助手的说明如下:

Button QML Type

Push-button that can be clicked to perform a command or answer a question. More...

Import Statement:  import QtQuick.Controls 2.5

Since: Qt 5.7

Inherits: AbstractButton

Inherited By: RoundButton and ToolButton

       根据以上可知,在QML中要使用Buttoon,需要先导入控件库 import QtQuick.Controls 2.5, 使用其它控件也是一样,都需要导入这个库。

       在界面上添加一个按钮

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.5

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Button{
        x:100  //设置按钮的横坐标
        y:100  //设置纵坐标
        text:"我是按钮"   //按钮标题

        //信号槽连接
        onClicked: {
            console.log("我被点击了")
        }
    }
}

       下面说说QML按钮的其它属性及用法

一、信号槽连接

        在Button的父类AbstractButton可以找到如下信号:

Signals

  • canceled()
  • clicked()
  • doubleClicked()
  • pressAndHold()
  • pressed()
  • released()
  • toggled()

          按钮信号槽写法,on + 信号首字母大写,例如下面的代码,写了一个点击事件,代码如下:

        //信号槽连接,单击信号
        onClicked: {
            console.log("我被点击了,输出变量num = " + num)
        }

        槽函数代码的3中写法 (1)可以调用外部js函数 (2)大括号可以不写 (3)用控件的id调用,例如给Button添加了一个属性id:myButoon

Button{
        id:myButoon
        x:100  //设置按钮的横坐标
        y:100  //设置纵坐标
        text:"我是按钮"   //按钮标题

        //信号槽连接,单击信号
        onClicked: {
            console.log("我被点击了,输出变量num = " + num)
        }

        function slotDouble(){
            console.log("我被双击了")
        }

        //双击信号
//        onDoubleClicked: {
//            slotDouble();
//        }

        //函数调用时大括号也可以不写
        //onDoubleClicked: slotDouble()

        //也可以根据id调用
        //onDoubleClicked: myButoon.slotDouble()
    }
 二、Button添加资源

 创建qrc文件后,按钮可以获取qrc文件里的资源进行显示

    Button
    {
        id:myButoon2
        x: 100
        y: 160

        //安妮添加图标
        icon.source: "qrc:/images/save.png"
        icon.color: "transparent"
        display: AbstractButton.TextUnderIcon
        text:"保存"

        //设置按钮背景颜色
        background: Rectangle {
               color: Qt.rgba(250/255,250/255,250/255,1)
               }
    }

 默认的图片显示全是黑色的,需要把效果设为透明:"transparent" 

 本demo全部代码如下:

/*

  Button控件的用法

*/

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.5

Window {
    id:window
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    //变量的定义
    property int num : 1

    Button{
        id:myButoon
        x:100  //设置按钮的横坐标
        y:100  //设置纵坐标
        text:"我是按钮"   //按钮标题

        //信号槽连接,单击信号
        onClicked: {
            console.log("我被点击了,输出变量num = " + num)
        }

        function slotDouble(){
            console.log("我被双击了")
        }

        //双击信号
//        onDoubleClicked: {
//            slotDouble();
//        }

        //函数调用时大括号也可以不写
        //onDoubleClicked: slotDouble()

        //也可以根据id调用
        //onDoubleClicked: myButoon.slotDouble()
    }

    Button
    {
        id:myButoon2
        x: 100
        y: 160

        //安妮添加图标
        icon.source: "qrc:/images/save.png"
        icon.color: "transparent"
        display: AbstractButton.TextUnderIcon
        text:"保存"

        //设置按钮背景颜色
        background: Rectangle {
               color: Qt.rgba(250/255,250/255,250/255,1)
               }
    }
}

运行结果:

其它用法,可以参考Qt助手。

关注
打赏
1652240117
查看更多评论
立即登录/注册

微信扫码登录

0.0860s