Qt Quick:CheckBox 复选框

embedded/2024/12/21 11:40:00/

复选框不止选中和未选中2种状态哦,它还有1种部分选中的状态。这3种状态都是Qt自带的,如果想让复选框有部分选中这个状态,需要将三态属性(tristate)设为true。

 未选中的状态值为0,部分选中是1,选中是2。

import QtQuick
import QtQuick.Controls
import QtQuick.Controls.MaterialWindow {width: 640height: 480visible: truetitle: qsTr("Hello World")CheckBox {x: 20; width: 100; height: 50; text: "CheckBox"tristate: true              // 三态开启:未选中0、部分选中1、选中2onCheckStateChanged: {console.log(checkState) // 当状态改变,打印当前状态:0/1/2}}
}

自定义CheckBox需要使用indicator:

import QtQuick
import QtQuick.Controls
import QtQuick.Controls.MaterialWindow {width: 640height: 480visible: truetitle: qsTr("Hello World")CheckBox {id: checkBoxx: 20width: 100; height: 50text: "CheckBox"font.pixelSize: 16tristate: true              // 三态开启:未选中0、部分选中1、选中2onCheckStateChanged: {console.log(checkState) // 当状态改变,打印当前状态:0/1/2}indicator: Item {width: parent.width; height: parent.heightImage {id: checkboxIconwidth: checkBox.height; height: checkBox.heightsource: switch (checkBox.checkState) {case 0:return "./imgs/9055251_bxs_checkbox_icon.png"case 1:return "./imgs/9055239_bxs_checkbox_minus_icon.png"case 2:return "./imgs/9055095_bxs_checkbox_checked_icon.png"}}Label {text: checkBox.textfont: checkBox.fontanchors.left: checkboxIcon.rightanchors.leftMargin: 2anchors.verticalCenter: checkboxIcon.verticalCenter}}}
}

图标就是用的Image,锯齿很明显,效果不如Material风格。还有个问题是,Label和Image之间需要留出间距,这个间距会导致Label被裁剪,右侧相同间距点击不再生效。


次日补充:

图标用Image实现时,在制作或下载图片之前就要想好尺寸了,因为我测试了一下发现,如果你的控件大小和图片大小保持一致,那么锯齿状就没那么明显了(2个尺寸差不多也可以,比如下载的图片64x64,实际显示是48x48也没问题)。

如果还是不行,可以试试抗锯齿属性设为true,或者将图片的填充模式设为自适应填充。

虽然这篇文章大概率没多少人看到,但如果真的有大神路过并且有好的建议,欢迎在评论区留言哈~


http://www.ppmy.cn/embedded/147517.html

相关文章

实战技巧 DevEco Profiler 性能调优 Time

实战技巧 DevEco Profiler 性能调优 Time 背景 DevEco Studio 开发工具中提供了 Profiler 面板,可以让我们在针对实际开发应用过程中碰到的一些性能相关的问题提供解决方案。如响应速度慢、动画卡顿、内存泄漏、发热、耗电快等等场景。其中 Profiler 提供了实时监…

iOS在项目中设置 Dev、Staging 和 Prod 三个不同的环境

在 Objective-C 项目中设置 Dev、Staging 和 Prod 三个不同的环境,并为每个环境使用不同的 Bundle ID,可以通过以下步骤实现: 步骤 1: 创建不同的 Build Configuration 打开项目: 启动 Xcode 并打开你的项目。 选择项目文件&…

ChromeOS 131 版本更新

ChromeOS 131 版本更新 1. ChromeOS Flex 自动注册 在 ChromeOS 131 中,ChromeOS Flex 的自动注册功能现已允许大规模部署 ChromeOS Flex 设备。与 ChromeOS 零接触注册类似,自动注册将通过组织管理员创建的注册令牌嵌入到 ChromeOS Flex 镜像中。这将…

Serverless监控和调试、持续集成和持续部署

接下来,我们将探讨Serverless架构中的监控和调试,以及如何在Serverless环境中实现持续集成和持续部署(CI/CD)。 在Serverless架构中,监控和调试是确保应用健康运行的关键。以下是一些监控和调试的最佳实践: 日志聚合:使用云服务提供商的日志服务(如AWS CloudWatch、Azu…

基于 SSM 和 JAVA 的网络直播带货查询系统:JSP 驱动的设计与实现进程

第四章 系统设计 4.1 系统体系结构 网络直播带货网站的结构图4-1所示: 图4-1 系统结构 模块包括主界面,主页、个人中心、用户管理、商品分类管理、商品信息管理、系统管理、订单管理等进行相应的操作。 登录系统结构图,如图4-2所示&#xf…

【ETCD】ETCD 的一致性读(Linearizable Read)流程解析

ETCD中一致性读的主要流程如下所示 ETCD 的一致性读(Linearizable Read)流程分为以下几个步骤: 目录 1. 客户端发送请求2. 请求追踪和阻塞等待 Raft 响应**3. 请求 ReadIndex****4. Leader 确认自己状态****5. Leader 返回 ReadIndex****6.…

洛谷P2742 圈奶牛 (凸包 Andrew算法)

[USACO5.1] 圈奶牛Fencing the Cows /【模板】二维凸包 题目背景 upd: 新增一组 hack 数据。 题目描述 农夫约翰想要建造一个围栏用来围住他的奶牛,可是他资金匮乏。他建造的围栏必须包括他的奶牛喜欢吃草的所有地点。对于给出的这些地点的坐标,计算…

最新D音滑块JS纯算法还原(含完整源码)

文章目录 1. 写在前面2. 接口分析2. 源码实现【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python与爬虫领域研究与开发工作! 【🌟作者推荐】:对爬…