QML项目实战:自定义Switch按钮

目录

一.添加头文件

1.QtQuick.Controls 2.1

2.QtGraphicalEffects 1.12

二.自定义Switch

三.标签

四.效果

五.代码


一.添加头文件

1.QtQuick.Controls 2.1

  • QtQuick.Controls 提供了一组预定义的 UI 控件,这些控件可以用于构建现代、响应式的用户界面。
  • 它包括按钮、标签、文本框、滑块、列表视图等常见的 UI 元素。

2.QtGraphicalEffects 1.12

  • QtGraphicalEffects 提供了一组图形效果,可以在 QML 中应用到任何可视化项目上,如图像、视频或其他 UI 元素。
  • 它包括模糊、阴影、颜色调整、光照等效果。

二.自定义Switch

1.Switch 控件定义了一个自定义的指示器,根据 Switch 的状态(选中或未选中),矩形的颜色会发生变化。

2.指示器内部定义了一个滑块,它的初始位置取决于 Switch 的状态。滑块的颜色也会根据状态变化。

3.为滑块的位置变化添加了一个动画效果,使其在状态切换时平滑移动。

4.阴影效果

5.checked

三.标签

四.效果

五.代码

import QtQuick 2.5
import QtQuick.Window 2.2
import QtQuick.Controls 2.1
import QtGraphicalEffects 1.12

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

    Switch{
        id: _Switch
        anchors.centerIn: parent
        width: 140
        height: 50
        //checked:
        indicator: Rectangle {
            anchors.fill: parent
            width: 140
            height: 50
            radius: 25
            color: _Switch.checked ? "#2C62FF" : "#D7E1F0"
            border.width: 2
            border.color: "white"
            // border.color: _Switch.checked ? checkedColor : "#E5E5E5"
            Rectangle {
                x: _Switch.checked ? parent.width - width - 5 : 5
                width: 38
                height: width
                radius: 20
                anchors.verticalCenter: parent.verticalCenter
                color: _Switch.checked ?  " white" : "#97ACC8"

                Behavior on x {
                    NumberAnimation { duration: 200 }
                }
            }
            layer.enabled:          true
            layer.effect: DropShadow {
                verticalOffset: 4
                radius: 8
                samples: 10
                color: "#4d000f43"
            }
        }
        onCheckedChanged: {
            _Label.text = _Switch.checked
        }
    }

    Label{
        id:_Label
        anchors.top: _Switch.bottom
        anchors.topMargin: 30
        anchors.horizontalCenter: parent.horizontalCenter
        font.pixelSize: 45
        text: "我是一个标签"
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/908828.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开源框架Openlayers:就业必学,打造3D互动式地图

OpenLayers是一个开源的WebGIS库,支持多种地图类型,提供丰富的功能和API,支持多种格式,可以进行空间分析和可视化,还可以制作融合图层和定制地图。 在招聘市场中,OpenLayers的地位也是不可小觑的&#xff0…

React系列教程(2)React哲学

豆约翰习惯将掌握某一技术分为5个层次:初窥门径,小试牛刀,渐入佳境,得心应手,玩转自如 本篇属于React框架中的第1层次即初窥门径 我们认为,React 是用 JavaScript 构建快速响应的大型 Web 应用程序的首选方…

无人机声学侦测算法详解!

一、算法原理 无人机在飞行过程中,其电机工作、旋翼震动以及气流扰动等都会产生一定程度的噪声。这些噪声具有独特的声学特征,如频率范围、时域和频域特性等,可以用于无人机的检测与识别。声学侦测算法利用这些特征,通过一系列步…

【C++】继承的理解

1.继承的概念和定义 1.1继承的概念 继承 (inheritance) 机制是面向对象程序设计 使代码可以复用 的最重要的手段,它允许程序员在 保 持原有类特性的基础上进行扩展 ,增加功能,这样产生新的类,称派生类。继承 呈现了面向对象 程序…

车圈大厂9月利润率惨淡收尾,“金九”或变“铜九”

撰文|ANGELICA 编辑|ANGELICA 审核|烨 Lydia 声明|图片来源网络。日晞研究所原创文章,如需转载请留言申请开白。 国庆假期第一天,不少车企就迫不及待晒出假期战报。 按照以往的经验,每年9月…

蓝牙是如何诞生,如何工作,如何发展的?【无线通信小百科】

蓝牙为什么叫蓝牙?深入了解关于蓝牙的一切|无线通信小百科 在前两期文章,我们为大家介绍了无限通信技术是如何工作,如何发展;也为大家讲解了目前主流无线通信模块、SoC方案都有哪些。 无线通信工作原理、发展历程介绍https://blo…

Pytorch cuda版本选择(简洁高效版)

简而言之 Pytorch cuda版本选择 只需要低于cuda驱动版本即可,cuda版本查看是nvidia-smi, nvcc -V 是runtimeapi版本可以不用管 1.只要看cuda驱动版本 安装pytorch 选择cuda版本,只要看你电脑cuda驱动版本即可。 2.选择依据 pytorch中cuda版本只要不高于…

告别复杂协作:Adobe XD的简化替代方案

Adobe XD是一款集成UI/UX设计和原型创建功能的设计平台。它允许用户进行网页、移动应用的设计,以及原型的绘制,并且能够将静态设计转化为动态的交互原型。尽管Adobe XD提供了这些功能,但它依赖于第三方插件,且插件库有限&#xff…

【创新技术】探索Nuvoton NSP2.0:打造高品质语音提示新方案

你还在为寻找低成本高品质的语音播放芯片而困扰吗?面对市面上参差不齐的语音播放芯片,我们一直都在追求性价比,真正的性价比并不单独只是考虑价格,更加考虑播放音效的品质,芯片的抗干扰性能、外围电路的简易程度和开发…

【IC每日一题:CDC多bits跨时钟传输+handShake】

IC每日一题:CDC多bits跨时钟传输handShake 1 八股题:CDC多bits跨时钟传输1.1 慢到快:MUX enbale同步器法1.1.1 分析1.1.2 时序图1.1.3 代码 1.2 快到慢:握手协议1.2.1 原理分析1.2.2 时序图1.2.3 代码题 2 手撕题:使用…

如何将MySQL彻底卸载干净

目录 背景: MySQL的卸载 步骤1:停止MySQL服务 步骤2:软件的卸载 步骤3:残余文件的清理 步骤4:清理注册表 步骤五:删除环境变量配置 总结: 背景: MySQL卸载不彻底往往会导致重新安装失败…

完美解决 vscode 多设备通过ssh登录远程服务器免密登录

文章目录 问题解决分支一:只需一个设备连服务器分支二:需要多台设备连服务器(即分支一成立的情况下,即已经有一个设备连接服务器了)确保权限正确注意 问题 麻烦,每次打开vscode都要输入密码才能连接服务器&…

mac|安装redis及RedisDesk可视化软件

一、安装 通过Homebrew安装 brew install redis 在安装过程可以得到以下信息: 1、启动redis或重新登陆redis brew services start redis 如果只想在前端运行,而不是在后端,则使用以下命令 /opt/homebrew/opt/redis/bin/redis-server /opt…

大学适合学C语言还是Python?

在大学学习编程时,选择C语言还是Python,这主要取决于你的学习目标、专业需求以及个人兴趣。以下是对两种语言的详细比较,帮助你做出更明智的选择: C语言 优点: 底层编程:C语言是一种底层编程语言&#x…

3大关键点教你用Java和Spring Boot快速构建微服务架构:从零开发到高效服务注册与发现的逆袭之路

你好,我是忆~遂愿,全网3w粉丝,《遂愿盈创》社群主理人。 副业启航① | 遂愿盈创(对副业感兴趣免费可入,多种赚钱实战项目等你来,一起探寻副业快速变现的途径;以及对接互联网大厂商务合作&#x…

ubuntu下使用pocketsphinx进行语音识别

文章目录 前言一、pocketsphinx的介绍二、ubuntu下编译三、使用示例1.模型选择2.代码示例3.自定义字典 四、交叉编译总结 前言 由于工作需要语音识别的功能,环境是在linux arm版上,所以想先在ubuntu上跑起来看一看,就找了一下语音识别的开源…

Redis的持久化以及性能管理

目录 一、Redis持久化概述 1.什么是Redis持久化 2.持久化方式 3.RDB持久化 3.1概念 3.2触发条件 3.3执行流程 3.4启动时加载 4. AOF持久化 4.1概念 4.2启动AOF 4.3执行流程 4.4启动时加载 5.RDB和AOF的优缺点 二、Redis性能管理 1.查看Redis内存使用 2…

科研绘图系列:R语言组合连线图和箱线图(linechart+boxplot)

文章目录 介绍加载R包数据数据预处理画图1画图2系统信息介绍 连线图(Line Chart)是一种常用的数据可视化图表,它通过将一系列数据点用直线段连接起来来展示数据随时间或有序类别变化的趋势。以下是连线图可以表示的一些内容: 时间序列数据:展示数据随时间变化的趋势,例如…

Webserver(3.1)线程

目录 创建线程终止线程连接已终止的进程二级指针 线程分离线程取消线程属性线程同步多线程卖票 创建线程 编译时需要加-pthread gcc pthread_create.c -o create -pthread#include<pthread.h> #include<stdio.h> #include<string.h> #include<unistd.h&…

WPS实现手机电脑同步文件

复制链接&#xff0c;发送微信&#xff0c;即可在手机端打开同步编辑文档。 当手机编辑文档后&#xff0c;会有如下提示: 根据提示&#xff0c;可选择文件更新版本。