QML工作笔记-为PushButton戴上皮肤
目录
基本概念
博主例子
源码打包下载
基本概念
以前写过一个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戴上皮肤相关推荐
- QML工作笔记-为TestField戴上皮肤
目录 基本概念 代码及演示 源码打包下载 基本概念 以目前的技术累计来说,有3种方式进行美化! 1. 修改TextField本生的属性: 2. 加上TextFieldStyle进行美化: 3. 在Te ...
- QML工作笔记-2种输入框的使用(TextField与TextInput)
目录 演示 代码 演示 这里如下图,上个的那个是TextField,下面的那个是TextInput加一个Rectangle 其中上面那个蓝框包着的就是TextField,下面那个是TextInput ...
- ASP.NET工作笔记之一:图片上传预览及无刷新上传
转自:http://www.cnblogs.com/sibiyellow/archive/2012/04/27/jqueryformjs.html 最近项目里面涉及到无刷新上传图片的功能,其实也就是上 ...
- QML工作笔记-Key Element的使用
目录 基本概念 演示及代码 源码打包下载 基本概念 Key允许按键,这个比QGraphics框架好用多了,开发起来真的是快. 演示及代码 演示运行截图如下: 程序结构如下: 源码如下: main.cp ...
- QML工作笔记-NumberAnimation、RotationAnimation、Timer综合使用
目录 例子及演示 打包下载 例子及演示 运行截图如下: git图如下: 程序结构如下: 源码如下: main.cpp #include <QGuiApplication> #include ...
- QML工作笔记-仿前端滑出界面(JavaScript)
目录 基本概念 代码及演示 源码打包下载 基本概念 qml可以使用JavaScript完成一些动画的功能,其中可以写一个Js文件,并且导入,这样可以让程序结构更加清晰: 但这个JavaScript和w ...
- QML工作笔记-PC端和Android端布局错位问题
目录 问题演示 解决办法 问题演示 比如如下的程序,在PC端运行: 而在Android端: 可见有如下的问题.造成这个原因可以是两平台的差异.得手动调整Android端的布局 解决办法 参考我以前的这 ...
- QML工作笔记-文本输入设置长度以及回显方式(TextInput与TextField通用)
目录 基本概念 代码及演示 基本概念 这是一个很常用到的功能,特意记录下: 一般输入框会用到2个,一个是TextInput一个是TextField. 因为TextInput加Rectangle如果太长 ...
- QML工作笔记-在Row布局中如何进行稍许移动(图片Row布局会遇到)
目录 演示效果 伪代码 演示效果 意思就是如何把这样的效果: 改成: 这里并不是把 修仙 上移了,而是把 九州 和 大陆 下移了 这样的效果! 伪代码 修改后的代码如下: Row {id: topRo ...
最新文章
- 【Datawhale-Python】Task1
- smarty去除html标签,Smarty与脚本中的html标签爆裂
- MAVEN 的常用命令
- 【Elasticsearch】Elasticsearch之别名
- rabbitMQ消息队列 consume详解
- day02:关于惯性导航工具箱的学习与使用:use of the progen
- hadoop 权限错误 Permission denied: user=root, access=WRITE, inode=/:hdfs:super
- 利用爬虫获取网上医院药品价格信息 (上)
- 官方jdk历史版本的下载方式
- js中 clientHeight、offsetHeight、scrollHeight的区别
- java 数字转大写中文_java如何实现,把数字转换成中文的大写数字?
- 推荐几个新手可以在网上赚钱的几个项目
- #Excel公式应用#从数据透视表进一步汇总文本信息
- Unity4.3.1引擎源码编译过程
- 育儿心得,所有适龄女青年都该看一下
- html中table设置滚动条
- Nuxt - 网站接入 51LA 网站统计详细教程(提供 51LA.js 官方插件与引入教程)
- 筑牢数字基础设施:华为笔下的中国诗意
- Chrome关闭后无法打开
- shell脚本 查看还有多少天过生日