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

Qt自定义checkbox实现按下回车键该项打勾

引言

  • 开发环境
  • 代码结构
  • 示例代码
  • 运行效果
  • 总结

使用qt实现一个列表,列表中每一项中的类似一个checkbox,通过上下键可以切换选中项,按下回车键在已经选中的项前出现对勾。效果如下:

20241203_163929

开发环境

使用ubuntu下QtCreator4.11.。
在这里插入图片描述

代码结构

这里将项目的结构截图贴上,为了更好的复现项目 。
项目结构图如下:
在这里插入图片描述
ui文件中的控件采用在项目中用代码实现,没有在ui设计器中拖控件,是项目生成时生成的dialog.ui。

示例代码

本示例中有两个类可以单独拿来使用,作为自定义的checkbox,分别为MyCheckBox类和MyCheckMarkIcon类。这两个类用来实现一个自定义的checkbox。
下面是具体实现代码。
mycheckmarkicon.h

#ifndef MYCHECKMARKICON_H
#define MYCHECKMARKICON_H#include <QObject>
#include <QWidget>class MyCheckMarkIcon : public QWidget
{Q_OBJECT
public:explicit MyCheckMarkIcon(QWidget *parent = nullptr);void setColor(const QColor& color);void setSelected(const bool& bIsSelected);bool getSelected()const;
protected:void paintEvent(QPaintEvent *event) override;
signals:
private:QColor m_color;QColor m_backColor;//背景色bool m_bIsSelected;//是否选中
};#endif // MYCHECKMARKICON_H

mycheckmarkicon.cpp

#include "mycheckmarkicon.h"#include <QPainter>
#include <QStyleOption>MyCheckMarkIcon::MyCheckMarkIcon(QWidget *parent) : QWidget(parent),m_color(Qt::transparent)
{setFixedSize(20,20);
}void MyCheckMarkIcon::setColor(const QColor &color)
{m_color = color;m_bIsSelected == true?m_backColor=Qt::yellow:m_backColor = QColor("#6A5ACD");update();
}void MyCheckMarkIcon::setSelected(const bool &bIsSelected)
{m_bIsSelected = bIsSelected;
}bool MyCheckMarkIcon::getSelected() const
{return m_bIsSelected;
}void MyCheckMarkIcon::paintEvent(QPaintEvent *event)
{QPainter painter(this);QPen pen(Qt::SolidLine);pen.setWidth(2);pen.setBrush(m_backColor);QRect rect(0,0,20,20);painter.fillRect(rect,m_backColor);//绘制填充矩形pen.setColor(m_color);painter.setPen(pen);QPainterPath path;path.moveTo(rect.left()+5,rect.right()-5);path.lineTo(rect.left()+10,rect.bottom());path.lineTo(rect.left()+15,rect.top()+5);painter.strokePath(path,pen);//使用指定的笔在路径上绘制轮廓
}

mycheckbox.h

#ifndef MYCHECKBOX_H
#define MYCHECKBOX_H#include <QWidget>
#

相关文章:

Qt自定义checkbox实现按下回车键该项打勾

引言 开发环境代码结构示例代码运行效果总结使用qt实现一个列表,列表中每一项中的类似一个checkbox,通过上下键可以切换选中项,按下回车键在已经选中的项前出现对勾。效果如下: 20241203_163929 开发环境 使用ubuntu下QtCreator4.11.。 代码结构 这里将项目的结构截图贴…...

头歌作业 数据库与大数据管理 期末复习资料

1、 下列说法错误的是&#xff1f;c A、UserCF算法推荐的是那些和目标用户有共同兴趣爱好的其他用户所喜欢的物品 B、ItemCF算法推荐的是那些和目标用户之前喜欢的物品类似的其他物品 C、UserCF算法的推荐更偏向个性化 D、UserCF随着用户数目的增大&#xff0c;用户相似度…...

2023年华数杯数学建模A题隔热材料的结构优化控制研究解题全过程文档及程序

2023年华数杯全国大学生数学建模 A题 隔热材料的结构优化控制研究 原题再现&#xff1a; 新型隔热材料 A 具有优良的隔热特性&#xff0c;在航天、军工、石化、建筑、交通等高科技领域中有着广泛的应用。   目前&#xff0c;由单根隔热材料 A 纤维编织成的织物&#xff0c;…...

如何抓取亚马逊页面动态加载的内容:Python爬虫实践指南

引言 在现代电商领域&#xff0c;数据的重要性不言而喻。亚马逊作为全球领先的电商平台&#xff0c;其页面上动态加载的内容包含了丰富的商品信息。然而&#xff0c;传统的爬虫技术往往难以应对JavaScript动态加载的内容。本文将详细介绍如何使用Python结合Selenium工具来抓取…...

在线钢琴源码

在线钢琴源码 是利用HTML5技术开发的在线钢琴应用&#xff0c;致力于为钢琴爱好者、音乐爱好者提供一个优雅、简洁的平台 在学习工作之余可以在线弹钢琴&#xff0c;享受音乐、生活的美好。自由钢琴支持自动演奏和手动演奏&#xff0c;简单易学&#xff0c;快来试试吧 源码截…...

【OpenDRIVE_Python】使用python脚本输出OD数据中含有信号灯地物的道路ID和信号灯信息

示例代码说明&#xff1a; 遍历OD数据中每条道路Road,若Road中存在信号灯地物signal&#xff0c;则将该道路ID和包含的所有信号灯输出到xml文件中。补充&#xff1a;一个Road中可能存在多个信号灯signal&#xff0c;这里取signal的上级标签signals&#xff0c;则将所有信号灯同…...

普中51单片机——LED流水灯模块

1、GPIO概念 GPIO&#xff08;general purpose intput output&#xff09;是通用输入输出端口的简称&#xff0c;可以通过软件来控制其输入和输出。51 单片机芯片的 GPIO 引脚与外部设备连接起来&#xff0c;从而实现与外部通讯、 控制以及数据采集的功能。 1.1、GPIO分类 &a…...

智已汽车x-signature 登录算法 签到

智已汽车x-signature 登录算法 签到 python代码成品...

浅谈留学essay之初级研究:What, why and how

所谓初级研究&#xff08;primary research&#xff09;指的是对研究者从观察、实践、访谈、问卷等第一手研究方法中得出的原始数据进行分析的研究方式。其主要特征是直接性&#xff08;directness&#xff09;、客观性&#xff08;factual&#xff09;、一手性&#xff08;fir…...

Mac启动服务慢问题解决,InetAddress.getLocalHost().getHostAddress()慢问题。

项目启动5分钟&#xff0c;很明显有问题。像网上其他的提高jvm参数就不说了&#xff0c;应该不是这个问题&#xff0c;也就快一点。 首先找到自己的电脑名称&#xff08;用命令行也行&#xff0c;只要能找到自己电脑名称就行&#xff0c;这里直接在共享里看&#xff09;。 复制…...

电商营销活动-抽奖业务

目录 一、抽奖系统的核心功能 二、抽奖系统的业务逻辑 三、抽奖系统的业务优势 四、抽奖系统的业务注意事项 电商营销活动中的抽奖系统业务&#xff0c;是一种通过设立抽奖活动来吸引用户参与、提升用户活跃度和转化率的营销手段。以下是对电商营销活动抽奖系统业务的详细解…...

虚拟DOMdiff算法

一.什么是虚拟DOM&#xff1f; 虚拟DOM是 VUE 一个比较核心的概念&#xff0c;为什么会有虚拟DOM呢&#xff1f;首先可以与传统的网页开发做个对比&#xff0c;在没有 VUE 和 REACT 框架之前&#xff0c;我们都是使用原生 JavaScript 或者 jQuery&#xff0c;那时候是直接对 D…...

IDEA实现javaweb用户登录(增删改查)

IDEA实现javaweb用户登录&#xff08;增删改查&#xff09; 文章目录 IDEA实现javaweb用户登录&#xff08;增删改查&#xff09;前言一、IDEA 软件的简单使用1 创建一个普通 java 项目2 新增 web 配置将项目由普通的Java项目变为 javaweb项目2.1 新增 web 配置2.2 新增项目文件…...

JS进阶01-异步编程、跨域、懒加载

目录 一、异步编程 1.1.异步编程的基本概念与重要性 1.2.事件循环&#xff08;Event Loop&#xff09;机制 1.3.JavaScript异步编程的常见方式及详解 示例 1.4.异步编程的最佳实践 二、跨域 2.1.什么是跨域 2.2.怎么解决跨域 1. JSONP&#xff08;JSON with Padding&…...

2012年 数模美赛 C题 犯罪克星

一、问题重述 银河犯罪建模中心&#xff08;ICM&#xff09;正在调查一个犯罪阴谋。调查人员已经识别出一些阴谋成员&#xff0c;但希望在逮捕之前确定其他成员和领导人。所有嫌疑人和可能的同谋者都受雇于同一家公司&#xff0c;并在一个大的综合办公室里工作。该公司正在开发…...

社区团购中 2+1 链动模式商城小程序的创新融合与发展策略研究

摘要&#xff1a;本文聚焦于社区团购这一新兴零售模式的发展态势&#xff0c;深入探讨 21 链动模式商城小程序与之融合的创新机制与应用策略。通过剖析社区团购的运营模式、优势特点以及发展现状&#xff0c;结合 21 链动模式商城小程序的功能特性&#xff0c;研究二者协同作用…...

【Go底层】time包Ticker定时器原理

目录 1、背景2、go版本3、源码解释【1】Ticker结构【2】NewTicker函数解释 4、代码示例5、总结 1、背景 说到定时器我们一般想到的库是cron&#xff0c;但是对于一些简单的定时任务场景&#xff0c;标准库time包下提供的定时器就足够我们使用&#xff0c;本篇文章我们就来研究…...

RoBERTa- 稳健优化的 BERT 预训练模型详解

一、引言 自 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;问世&#xff0c;预训练语言模型在自然语言处理&#xff08;NLP&#xff09;领域掀起革命浪潮&#xff0c;凭卓越表现大幅刷新诸多任务成绩。RoBERTa 承继 BERT 架构&#x…...

【C++】continue语句、goto语句

1、continue 语句 作用&#xff1a;在循环语句中&#xff0c;跳过本次循环中余下尚未执行的语句。继续下一次循环。 注意&#xff1a;continue只能用于循环中。 示例&#xff1a; 代码&#xff1a; //continue的用法 #include<iostream> using namespace std; int ma…...

postgresql与pgvector安装与使用

环境变量修改 打开 .bashrc 文件进行编辑&#xff1a; vim ~/.bashrc在文件的末尾添加上面的环境变量配置 # 添加 PostgreSQL 可执行文件路径到系统 PATH export PATH/home/....../pg/postgresql-12.4/bin:$PATH# 设置 PostgreSQL 数据目录 export PGDATA/home/....../pg/pos…...

别再只用体素网格了!PCL点云降采样实战:4种方法对比与选型指南(附Python/Open3D代码)

点云降采样实战指南&#xff1a;4种核心方法深度解析与工程选型点云数据处理中&#xff0c;降采样往往是预处理环节的关键一步。面对海量的三维点云数据&#xff0c;如何在不丢失重要几何特征的前提下&#xff0c;有效减少数据量&#xff1f;这直接关系到后续算法的效率和精度。…...

BetterGI原神自动化工具:5分钟快速上手指南,解放你的游戏时间

BetterGI原神自动化工具&#xff1a;5分钟快速上手指南&#xff0c;解放你的游戏时间 【免费下载链接】better-genshin-impact &#x1f4e6;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条…...

BabelDOC终极指南:如何完美保留PDF格式的专业文档翻译工具

BabelDOC终极指南&#xff1a;如何完美保留PDF格式的专业文档翻译工具 【免费下载链接】BabelDOC Yet Another Document Translator 项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC 你是否曾为翻译PDF文档而烦恼&#xff1f;格式错乱、公式变形、排版混乱—…...

3大显示难题如何解决?用ColorControl实现专业级色彩管理

3大显示难题如何解决&#xff1f;用ColorControl实现专业级色彩管理 【免费下载链接】ColorControl Easily change NVIDIA display settings and/or control LG TVs 项目地址: https://gitcode.com/gh_mirrors/co/ColorControl ColorControl是一款强大的开源工具&#x…...

Java SPI机制原理与实战

前言 在现代软件开发中&#xff0c;Java SPI机制原理与实战是一个非常重要的技术点。本文将从原理到实践&#xff0c;带你深入理解这一技术&#xff0c;并通过完整的代码示例帮助你快速掌握核心知识点。 核心概念 基本原理 Java SPI机制原理与实战的核心在于理解其底层机制。以…...

昇腾CANN ops-math LayerNorm:数值稳定性与 Warp Reduce 优化实战

LayerNorm 是现代神经网络的标配——Transformer 的每一层都有它。公式简单&#xff1a;μ mean(x), σ var(x), y (x-μ) / √(σε) * γ β。但 NPU 上的实现有三个陷阱&#xff1a;FP16 精度下 mean/variance 计算不稳定、Warp reduce 的并行归约需要跨 lane 同步、反向…...

Vision Mamba边缘部署:从算法瓶颈到专用硬件加速器设计

1. 项目概述&#xff1a;为什么我们需要为Vision Mamba定制硬件&#xff1f;在边缘设备上部署视觉大模型&#xff0c;听起来就像让一台家用轿车去跑F1赛道——动力、空间、散热&#xff0c;处处都是瓶颈。传统的Transformer架构&#xff0c;比如ViT&#xff0c;虽然性能强悍&am…...

LLM结构化输出工程:让AI返回你想要的格式

为什么结构化输出是工程化的核心需求 “直接问模型&#xff0c;它会告诉你答案”——这在原型阶段没问题。但在生产系统中&#xff0c;你的下游代码需要的不是一段流畅的自然语言&#xff0c;而是可解析的、格式固定的结构化数据。一个用户信息提取API&#xff0c;调用方期望拿…...

电脑‘假关机’真烦人!深入聊聊Windows电源管理里的‘快速启动’到底是个啥

Windows快速启动技术揭秘&#xff1a;高效与兼容性的博弈深夜加班结束&#xff0c;你点击关机按钮准备休息&#xff0c;却发现显示器刚暗下去又突然亮起——这不是灵异事件&#xff0c;而是Windows的快速启动功能在"作祟"。这种介于关机和休眠之间的混合状态&#xf…...

别再乱码了!一文搞懂Windows记事本里ANSI、GBK、SJIS这些编码到底怎么选

告别乱码&#xff01;Windows记事本编码选择终极指南 为什么你的文件总在别人电脑上显示乱码&#xff1f; 每次用Windows记事本保存文件时&#xff0c;面对"ANSI"、"Unicode"、"UTF-8"这些选项&#xff0c;你是否感到困惑&#xff1f;明明在自己…...