qml 拨盘旋钮Dial 控件滑动开关Switch
拨盘旋钮 Dial
属性
angle : 可设置保持手柄的角度
from : 保存范围的起始值。默认值为0.0
handle : 保存转盘的手柄
live : 保存在拖动手柄时拨盘是否为value属性提供实时更新
position : 保存句柄的逻辑位置
pressed : 保存是否按下拨盘
snapMode : 保存捕捉模式
stepSize : 保存步长
to : 保存范围的最终值。默认值为1.0
value : 保存值在from-to范围内。默认值为0.0
wrap : 保存在拖动时是否绕转盘 启用或禁用换行方法
decrease():将值减小stepSize(未设置则减小0.1)
increase(): 将值增大stepSize(未设置则增大0.1)信号
moved(): 当用户通过触摸,鼠标或按键以交互方式移动了转盘时,将发出此信号例1
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
//import QtGraphicalEffects 1.0Window {visible: truewidth: 360height: 360title: qsTr("Image")color: "lightyellow"Dial{id: dialanchors.centerIn: parentstepSize: 0.2Keys.onTabPressed: {dial.decrease()}}
}
- 例2 自定义Dial
- Dial有2个可视化控件:background(背景项)、handle(手柄项)
手柄由小三角形改为圆形,背景项设置为圆形
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
//import QtGraphicalEffects 1.0Window {visible: truewidth: 360height: 360title: qsTr("Image")color: "lightyellow"Dial{id: dialanchors.centerIn: parentbackground: Rectangle {id:rectwidth: 200height: widthcolor: Qt.rgba(0,0,0,0)radius: width / 2border.color: dial.pressed ? "orange" : "green"}handle: Rectangle {id: handleItemx: dial.background.x + dial.background.width / 2 - width / 2y: dial.background.y + dial.background.height / 2 - height / 2width: 16height: 16color: dial.pressed ? "orange" : "green"radius: 8transform: [ //保存要应用的转换列表Translate { //不更改其x或y属性的情况下移动项目的方法 沿y轴平移y: -Math.min(dial.background.width, dial.background.height) * 0.4 + handleItem.height / 2},Rotation { //旋转角度angle为我们移动手柄的角度。在设置旋转的原点即为手柄小球的中心。angle: dial.angleorigin.x: handleItem.width / 2origin.y: handleItem.height / 2}]}}
}
控件滑动开关 Switch
- 开关按钮,处于2种状态之间选择。较大的选项集,可以用SwitchDelegate
- 属性
position : 保存滑动指示器的逻辑位置
visualPosition : 保留滑动指示器的视觉位置 - Switch有3个可视化项:background背景、contentitem内容、indicator指示器
- 例1
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2Window {visible: truewidth: 360height: 360title: qsTr("Image")color: "lightyellow"Switch{anchors.centerIn: parent}
}
- 例2
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2Window {visible: truewidth: 360height: 360title: qsTr("Image")color: "lightyellow"Switch {id: rootanchors.centerIn: parentindicator: Rectangle { //设置可视项指示器 一个椭圆包裹着一个小球做x轴的平移width: 80height: 40radius: height / 2color: "blue"border.width: 2border.color: "blue"Rectangle {//只改变x轴 当开关被按下时,小球向右运动,x的坐标变为父矩形的宽度减去自身宽度,这里再减去1是为了不完全贴近开关的右侧x: root.checked ? parent.width - width - 1: 1width: parent.height - 2 //这样使得小球被包裹在父矩形内部,同样也留出了2px的空隙height: widthradius: width / 2anchors.verticalCenter: parent.verticalCentercolor: "white"}}}
}
qml 拨盘旋钮Dial 控件滑动开关Switch相关推荐
- QML做图片倒影效果(控件倒影)
前言 用 QML 做图片倒影,主要是用ShaderEffect组件来实现,先来看看实际效果,如下: 还可以用同样的方式来做其他控件的倒影,例如: 正文 直接来看源码 import QtQuick 2. ...
- QML自定义的日历控件
QML中提供了日历的控件Calendar,但该控件为QtQuick.Controls 1中提供的控件,因此只能使用QtQuick.Controls.Styles的方式对该控件进行设置,效果如图: 在Q ...
- RT-Thread 模拟器 simulator LVGL控件:switch 开关按钮控件
前言 switch button : 开关按钮控件,用的也比较多,这里熟悉下相关的操作 switch 有两个状态:开与关 环境搭建 RT-Thread 4.1.0 或最新版本 BSP 模拟器 simu ...
- QML 自定义控件 时间滚筒控件
QML 仿手机时间滚筒控件 效果:共3中模式 "Date" | "Time" | "DateTime" main.qml MouseAre ...
- qml 时间控件_Qt编写自定义控件54-时钟仪表盘
一.前言 这个控件没有太多的应用场景,主要就是练手,论美观的话比不上之前发过的一个图片时钟控件,所以此控件也是作为一个基础的绘制demo出现在Qt源码中,我们可以在Qt的安装目录下找到一个时钟控件的绘 ...
- Android Switch和ToggleButton控件
1. Switch类 Switch类被用来展示状态. android:checked设置是否打开 自定义Switch, android:track设置背景 android:thumb设置选择背景 an ...
- Qml控件设置字体样式
Qml中的部分控件支持设置字体样式,如Control控件有font属性,可以用来设置字体样式(除了字体的颜色),按照正确的格式编写才可以运行正常. 正确编写格式如下: import QtQuick 2 ...
- QML入门教程(4): QML矩形框控件Rectangle用法
QML提供了矩形控件 代码如下: import QtQuick 2.12 import QtQuick.Window 2.12Window {visible: truewidth: 640height ...
- QT中常用的输入控件
Qt Creator有15种Input Widgets,如下图: Input Widgets的Qt类和名称介绍如下表 控件类 控件名 中文名 控件类 控件名 ...
最新文章
- ASP.NET MVC 控制器激活(二)
- 假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为10μs,由缓冲区送至用户区的时间是5μs,系统对每个磁盘块数据的处理时间为2μs。若用户需要将大小为10个磁盘块的
- Git 实用操作 | 撤销 Commit 提交
- 【计算机网络】计算机网络概述
- C++ 用遗传算法解决TSP问题,旅行商问题
- js基础知识汇总03
- Introduction to Computer Networking学习笔记(四):路由转发表及转发规则
- GB28181协议RTP传输
- python 音乐播放器
- Win7 蓝牙耳机无法使用
- 钢琴调律经验(菜鸟版)
- 网页特殊符号(HTML字符实体)大全
- 431 Request Header Fields Too Large
- 《最终幻想》《古墓丽影》发行商Square Enix开始涉足NFTs和区块链游戏
- vs2015 - vs2010
- JS 通过日期判断当前日期所在周的周一到周日的日期
- mysql子查询效率高_mysql利用子查询效率怎么样
- 小孢子的神奇之旅-如何阅读MindSpore报错信息(1)
- 高通全新骁龙7c/8c/8cx计算平台介绍
- HtmlUnit抓取Ajax网页,例子是去哪儿机票