目录

基本概念

博主例子

源码打包下载


基本概念

以前写过一个PushButton的基本用法,链接如下:

https://blog.csdn.net/qq78442761/article/details/86261433

但很丑。就像男人一样,不愿意找很丑的菇凉。

这里有几种方法,一种是自定义,就和widgets的一样,搞几个图片,自定义一下,还是很灵活的。

一种是用qml提供的style,来做,这种也是比较好的。

感觉这种就像女生买化妆品,买衣服,打扮下还是很好看的。

前者就相当于去整容啥的,或者是克隆个啥的。

这里使用到的就是ButtonStyle这个特性,具体看源码

博主例子

这里要提示一点:

Button在QML中有2个版本,一个是2 5.9一个是 5.9,他们的基类都不一样,在此使用5.9的。

他们的成员有很多不一样。

程序运行截图如下:

程序结构如下:

源码如下:

main.qml

import QtQuick 2.9
import QtQuick.Window 2.2import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2Window {visible: truewidth: 640height: 480title: qsTr("CSDN IT1995")Row{anchors.centerIn: parentspacing: 20Button{id: pushButton1style: ButtonStyle{background: BorderImage {id: btn1source: control.pressed ? "qrc:/img/press.png" : "qrc:/img/normal.png"width: 128height: 128antialiasing: trueborder.left: 5border.top: 5border.right: 5border.bottom: 5}}onClicked: {console.debug("pushButton1 pressed!")}}Button{id: pushButton2style: buttonStyle1text: "Hello Word"onClicked: {console.debug("pushButton2 pressed!");}}Button{id: pushButton3style: buttonStyle2onClicked: {console.debug("pushButton3 pressed!");}}}Component {id: buttonStyle1ButtonStyle{background: Rectangle{implicitHeight: 128implicitWidth: 128color: control.pressed ? "darkGray" : control.activeFocus ? "#cdd" : "#ccc"antialiasing: trueborder.color: "gray"radius: height/2}}}Component {id: buttonStyle2ButtonStyle{background: Rectangle{implicitHeight: 128implicitWidth: 128color: control.pressed ? "darkGray" : control.activeFocus ? "#cdd" : "#ccc"antialiasing: trueborder.color: "gray"radius: height/2Rectangle {anchors.fill: parentanchors.margins: 1color: "transparent"antialiasing: truevisible: !control.pressedborder.color: "#aaffffff"radius: height/2}}}}
}

源码打包下载

https://github.com/fengfanchen/Qt/tree/master/QML%20Style%20Of%20Button

QML工作笔记-为PushButton戴上皮肤相关推荐

  1. QML工作笔记-为TestField戴上皮肤

    目录 基本概念 代码及演示 源码打包下载 基本概念 以目前的技术累计来说,有3种方式进行美化! 1. 修改TextField本生的属性: 2. 加上TextFieldStyle进行美化: 3. 在Te ...

  2. QML工作笔记-2种输入框的使用(TextField与TextInput)

    目录 演示 代码 演示 这里如下图,上个的那个是TextField,下面的那个是TextInput加一个Rectangle 其中上面那个蓝框包着的就是TextField,下面那个是TextInput ...

  3. ASP.NET工作笔记之一:图片上传预览及无刷新上传

    转自:http://www.cnblogs.com/sibiyellow/archive/2012/04/27/jqueryformjs.html 最近项目里面涉及到无刷新上传图片的功能,其实也就是上 ...

  4. QML工作笔记-Key Element的使用

    目录 基本概念 演示及代码 源码打包下载 基本概念 Key允许按键,这个比QGraphics框架好用多了,开发起来真的是快. 演示及代码 演示运行截图如下: 程序结构如下: 源码如下: main.cp ...

  5. QML工作笔记-NumberAnimation、RotationAnimation、Timer综合使用

    目录 例子及演示 打包下载 例子及演示 运行截图如下: git图如下: 程序结构如下: 源码如下: main.cpp #include <QGuiApplication> #include ...

  6. QML工作笔记-仿前端滑出界面(JavaScript)

    目录 基本概念 代码及演示 源码打包下载 基本概念 qml可以使用JavaScript完成一些动画的功能,其中可以写一个Js文件,并且导入,这样可以让程序结构更加清晰: 但这个JavaScript和w ...

  7. QML工作笔记-PC端和Android端布局错位问题

    目录 问题演示 解决办法 问题演示 比如如下的程序,在PC端运行: 而在Android端: 可见有如下的问题.造成这个原因可以是两平台的差异.得手动调整Android端的布局 解决办法 参考我以前的这 ...

  8. QML工作笔记-文本输入设置长度以及回显方式(TextInput与TextField通用)

    目录 基本概念 代码及演示 基本概念 这是一个很常用到的功能,特意记录下: 一般输入框会用到2个,一个是TextInput一个是TextField. 因为TextInput加Rectangle如果太长 ...

  9. QML工作笔记-在Row布局中如何进行稍许移动(图片Row布局会遇到)

    目录 演示效果 伪代码 演示效果 意思就是如何把这样的效果: 改成: 这里并不是把 修仙 上移了,而是把 九州 和 大陆 下移了 这样的效果! 伪代码 修改后的代码如下: Row {id: topRo ...

最新文章

  1. 【Datawhale-Python】Task1
  2. smarty去除html标签,Smarty与脚本中的html标签爆裂
  3. MAVEN 的常用命令
  4. 【Elasticsearch】Elasticsearch之别名
  5. rabbitMQ消息队列 consume详解
  6. day02:关于惯性导航工具箱的学习与使用:use of the progen
  7. hadoop 权限错误 Permission denied: user=root, access=WRITE, inode=/:hdfs:super
  8. 利用爬虫获取网上医院药品价格信息 (上)
  9. 官方jdk历史版本的下载方式
  10. js中 clientHeight、offsetHeight、scrollHeight的区别
  11. java 数字转大写中文_java如何实现,把数字转换成中文的大写数字?
  12. 推荐几个新手可以在网上赚钱的几个项目
  13. #Excel公式应用#从数据透视表进一步汇总文本信息
  14. Unity4.3.1引擎源码编译过程
  15. 育儿心得,所有适龄女青年都该看一下
  16. html中table设置滚动条
  17. Nuxt - 网站接入 51LA 网站统计详细教程(提供 51LA.js 官方插件与引入教程)
  18. 筑牢数字基础设施:华为笔下的中国诗意
  19. Chrome关闭后无法打开
  20. shell脚本 查看还有多少天过生日

热门文章

  1. 设计模式学习(五):行为型模式
  2. C++从入门到放肆!
  3. 数据治理项目失败,90%都是被这29条骚操作搞垮的
  4. 自助式BI工具分享:浅析FineBI
  5. 如何评价 IBM 收购 Blue Box 集团
  6. dazhilu飞鸽传书 2013 官方网站
  7. 2005年最具钱途的人才:软件研发炙手可热
  8. 老司机普及的c++入门心得!
  9. HTML5 API详解(18):IndexedDB 本地存储
  10. 执行ios命令_MEDUZA:一款针对iOS应用程序的通用SSL解绑工具