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.5Window {visible: truewidth: 640height: 480title: 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:myButoonx: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:myButoon2x: 100y: 160//安妮添加图标icon.source: "qrc:/images/save.png"icon.color: "transparent"display: AbstractButton.TextUnderIcontext:"保存"//设置按钮背景颜色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.5Window {id:windowvisible: truewidth: 640height: 480title: qsTr("Hello World")//变量的定义property int num : 1Button{id:myButoonx:100  //设置按钮的横坐标y:100  //设置纵坐标text:"我是按钮"   //按钮标题//信号槽连接,单击信号onClicked: {console.log("我被点击了,输出变量num = " + num)}function slotDouble(){console.log("我被双击了")}//双击信号
//        onDoubleClicked: {
//            slotDouble();
//        }//函数调用时大括号也可以不写//onDoubleClicked: slotDouble()//也可以根据id调用//onDoubleClicked: myButoon.slotDouble()}Button{id:myButoon2x: 100y: 160//安妮添加图标icon.source: "qrc:/images/save.png"icon.color: "transparent"display: AbstractButton.TextUnderIcontext:"保存"//设置按钮背景颜色background: Rectangle {color: Qt.rgba(250/255,250/255,250/255,1)}}
}

运行结果:

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

QML入门教程(2): QML Button用法介绍相关推荐

  1. QML入门教程(4): QML矩形框控件Rectangle用法

    QML提供了矩形控件 代码如下: import QtQuick 2.12 import QtQuick.Window 2.12Window {visible: truewidth: 640height ...

  2. QML入门教程(10) : QML圆形延时按钮

    QML提供了延时按钮DelayButton,我们可以对其自定义,如下图: 代码 import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuic ...

  3. esri-leaflet入门教程(1)-leaflet介绍

    esri-leaflet入门教程(1)-esri leaflet介绍 by 李远祥 关于leaflet,可能很多人比较陌生,如果搭上esri几个字母,可能会有更多的人关注.如果没有留意过leaflet ...

  4. QML入门教程(5):Label、TextField用法介绍

    Label用法代码 import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 2.5Window {visible: ...

  5. QML入门教程:一、QML和QtQuick简介以及QML实例

    从 Qt 4.7 开始,Qt 引入了一种声明式脚本语言,称为 QML(Qt Meta Language 或者 Qt Modeling Language),作为 C++ 语言的一种替代.而 Qt Qui ...

  6. QML入门教程(13): 鼠标键盘事件处理

    键盘事件 qml对键盘的处理,处理利用Keys,例如按键按下的处理: pressed(KeyEvent event) This signal is emitted when a key has bee ...

  7. JavaScript 入门教程||javascript 简介||JavaScript 用法

    javascript 简介 JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备. JavaScrip ...

  8. Adaboost入门教程——最通俗易懂的原理介绍(图文实例)

    写在前面 说到Adaboost,公式与代码网上到处都有,<统计学习方法>里面有详细的公式原理,Github上面有很多实例,那么为什么还要写这篇文章呢?希望从一种更容易理解的角度,来为大家呈 ...

  9. 泰凌微8258入门教程 基础篇④——sig_mesh_sdk架构介绍

    文章目录 一.前言 二.SDK文件架构 三.SDK Demo Project 四.vendor文件架构 4.1 common 4.2 Demo Project目录 五.产品类型定义 一.前言 本系列的 ...

最新文章

  1. 国内首个无人船研发测试基地建成
  2. 李彦宏/王坚/王传福等上榜“中国工程院2019院士增选候选人”引争议,实至名归吗?...
  3. Python数据类型和分支循环
  4. 『前端规范化』CSS命名规范化
  5. [SourceInsight].SI自动添加函数注释
  6. 未来,边缘计算的功能支柱是 Kubernetes
  7. 贪吃蛇python语言代码_Python贪吃蛇简单的代码
  8. JavaScript文档对象模型DOM节点操作之复制节点(7)
  9. [转载] Python Web开发最难懂的WSGI协议,到底包含哪些内容? WSGI服务器种类和性能对比
  10. apache的站点安全1
  11. 安装svn 汉化包 也不能设置中文
  12. 【软件工程导论题型大总结】画图题总结
  13. JUnit 单元测试
  14. 内网ip和外网ip区别
  15. Android 中 shape 各种属性详细介绍
  16. 人教版计算机三年级教学目标,人教版小学三年级数学下册教学计划
  17. 数据吞吐量高达800亿条!实时计算在贝壳找房的应用实践
  18. 动态 V2 基础配置命令
  19. Unity IOException: Sharing violation on path
  20. windows c api手册

热门文章

  1. php汉字转拼音库,汉字转拼音的PHP库
  2. 日本麻将记点器APP
  3. 罂粟花乄傷:最开心生活细节
  4. Vue中的深坑——component和components
  5. jeesite集群和负载均衡配置
  6. 如何去掉“Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8” 提示,删环境变量都不好使
  7. 城市建筑三维白膜数据的制作
  8. 【译】使用 AngularJS 和 Electron 构建桌面应用
  9. 使用 Cocos Creator 开发动感音乐游戏!
  10. SCAU 数据结构 1 单链表分解