当前位置: 首页 > news >正文

Qt Quick:CheckBox 复选框

复选框不止选中和未选中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.mrgr.cn/news/80817.html

相关文章:

  • 计算机网络(第8版)第四章 网络层(4.6.1~4.6.5)
  • [LitCTF 2023]easy_math (中级)
  • el-steps(vue3总)
  • 接口文档案例
  • 【SH】Ubuntu Server 24搭建Web服务器访问Python程序研发笔记
  • Centos7 部署ZLMediakit
  • Spring Boot 配置Kafka
  • 【0371】Postgres内核 实现构建一个 WAL record
  • 【java面向对象编程】第二弹----成员方法
  • 基于DockerCompose搭建Redis主从哨兵模式
  • js分页功能
  • 【Python】使用Selenium 操作浏览器 自动化测试 记录
  • regression里面的误差来源
  • Pytorch | 从零构建AlexNet对CIFAR10进行分类
  • Linux函数栈帧
  • windows上安装Redis
  • 对AI现状和未来发展的浅见
  • 关于代码注释
  • 分布式算法(一):从ACID和BASE到CAP
  • 面试题整理6----什么是进程最大数、最大线程数、进程打开的文件数,怎么调整
  • 百度飞桨:零基础入门深度学习
  • cocos creator制作2dTop-down游戏(虚拟摇杆、地图加载)
  • C# 基本信息介绍
  • python之OpenGL应用(1)入门篇
  • TCP拥塞控制
  • 2024年12月英语六级CET6写作与翻译笔记