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

Qt技巧(二)-滑动界面,轮询控件,循环操作控件

在Qt界面开发过程中,我们常常要对同类部件,具有同样功能的一系列部件进行操作,比如:
在这里插入图片描述
这个页面该怎么设计,中间的几个选项该怎么操作?

我们在主工程中添加一个设计师界面类,类名设置为“BrandForm”。
里边的每个选项以QPushButton来做,分别命名为:“btBrand1”,“btBrand2”,“btBrand3”…
将这些Button放在QScrollArea里,以实现上下滑动。
一个按钮怎么做成上图中的样式呢,样式表就可以实现:

QPushButton#btBrand1,
QPushButton#btBrand2,
QPushButton#btBrand3,
QPushButton#btBrand4,
QPushButton#btBrand5{background-image: url(:/image/Image/rbNormal.png);background-repeat: no-repeat;background-origin: padding;background-position: right center;padding-left:10px;padding-right:30px;border: none;border-radius: 4px;font: bold normal 24px "Source Han Sans CN";color: rgba(66, 66, 66, 1);background-color: rgba(255, 255, 255, 1);text-align: left;width: 280px;height: 58px;outline: none;
}
QPushButton#btBrand1:pressed,
QPushButton#btBrand1:checked,
QPushButton#btBrand2:pressed,
QPushButton#btBrand2:checked,
QPushButton#btBrand3:pressed,
QPushButton#btBrand3:checked,
QPushButton#btBrand4:pressed,
QPushButton#btBrand4:checked,
QPushButton#btBrand5:pressed,
QPushButton#btBrand5:checked{color: rgba(177, 32, 41, 1);background-image: url(:/image/Image/rbSelected.png);
}

接下来怎么实现这几个按钮的排他性呢,也就是点了这个,其他的就变成未点击状态呢?
通过设置这几个Button的属性,选中“checkable”使能选中属性,选中“autoExclusive”互斥模式这两个属性即可。如下:

在这里插入图片描述
当然,你也可以通过代码形式来实现,将这几个Button放在一个QButtonGroup组中也可以。

    ui->btBrand1->setCheckable(true);ui->btBrand2->setCheckable(true);ui->btBrand3->setCheckable(true);ui->btBrand4->setCheckable(true);ui->btBrand5->setCheckable(true);if(nullptr == btGroup){btGroup = new QButtonGroup(this);btGroup->addButton(ui->btBrand1);btGroup->addButton(ui->btBrand2);btGroup->addButton(ui->btBrand3);btGroup->addButton(ui->btBrand4);btGroup->addButton(ui->btBrand5);}btGroup->setExclusive(true);

两种方式都可以了,选其一即可。

接下来用代码实现滑动,并连接按钮的点击信号

//设置滑动ui->scrollArea->verticalScrollBar()->style()->polish(ui->scrollArea->verticalScrollBar());QScroller::ScrollerGestureType gesture = QScroller::LeftMouseButtonGesture;QScroller::scroller(ui->scrollArea)->grabGesture(ui->scrollArea, gesture);ui->scrollArea->verticalScrollBar()->setValue(0);
//按钮点击connect(ui->btBrand1, &QPushButton::clicked, this, [=](){m_strName = ui->btBrand1->text();});connect(ui->btBrand2, &QPushButton::clicked, this, [=](){m_strName = ui->btBrand2->text();});connect(ui->btBrand3, &QPushButton::clicked, this, [=](){m_strName = ui->btBrand3->text();});connect(ui->btBrand4, &QPushButton::clicked, this, [=](){m_strName = ui->btBrand4->text();});
//获取你选择的名字
ui->label.setText(m_strName);

接下来我想对这些品牌轮询怎么操作呢?

//假定有5个选项
int nCount = 5;for(int n=0; n< nCount; n++){QString strName = QString("btBrand") + QString::number(n+1);//重点是这个findChild按object的名称找到对应子对象QPushButton *cbFind = this->findChild<QPushButton*>(strName);if(cbFind->isChecked()){//轮询一圈,找到你要操作的那一个//比如设置名称cbFind->setText("");//比如设置大小cbFind->setFixedSize(labelSize);//比如设置可见cbFind->setVisible(false);}}

学会了么

相关文章:

Qt技巧(二)-滑动界面,轮询控件,循环操作控件

在Qt界面开发过程中&#xff0c;我们常常要对同类部件&#xff0c;具有同样功能的一系列部件进行操作&#xff0c;比如&#xff1a; 这个页面该怎么设计&#xff0c;中间的几个选项该怎么操作&#xff1f; 我们在主工程中添加一个设计师界面类&#xff0c;类名设置为“BrandF…...

003——单链表

1.链式存储的特点 逻辑&#xff08;通过指针实现&#xff09;上相邻&#xff0c;物理上可相邻可不相邻 2.结点&#xff08;节点都可以&#xff09; 4&#xff08;&8&#xff09; 8&#xff08;&6&#xff09; 6&#xff08;&1&#xff09; 1&#xff08;&…...

XILINX平台下LINUX DMA驱动调研

专栏目录 高质量文章导航-持续更新中-CSDN博客 基础概念 VA:virtual address称为虚拟地址, PA:physical address称为物理地址。 CPU通过地址来访问内存中的单元,如果CPU没有MMU,或者有MMU但没有启动,那么CPU内核在取指令或者访问内存时发出的地址(此时必须是物理地址…...

Oracle数据库安装和配置指南

Oracle数据库是一款功能强大的企业级关系数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;广泛应用于各种规模的企业和组织。其强大的性能和丰富的功能使其成为数据库管理的首选解决方案之一。以下是关于如何安装和配置 Oracle 数据库的详细指南。 一、准备工作 在开…...

制造业中工艺路线(工序)与产线(工作中心)关系

一.工艺路线与生产线是数字孪生中的虚实关系&#xff1a; 1.工艺路线为虚&#xff0c;生产线体为实&#xff1b; 2.工艺路线指导生产线的生产组织&#xff0c;生产线承载工艺路线的能力&#xff0c;把虚拟的生产信息流变成真实的产流。 二.工艺路线与生产线是数字孪生中互为“…...

目标跟踪算法——ByteTrack算法原理解析

文章目录 ByteTrack1. ByteTrack算法步骤&#xff1a;2. 算法解释2.1 模型初始化2.2 模型更新算法流程2.2.1 检测结果划分&#xff0c;划分为高分和较低分段2.2.2 高分段处理手段2.2.3 最优匹配与未匹配划分2.2.4 低分框再匹配2.2.5 未确认轨迹处理2.2.6 更新状态 2.3 匈牙利匹…...

C语言编译的过程

文章目录 1. 预处理&#xff08;Preprocessing&#xff09;2. 编译&#xff08;Compilation&#xff09;3. 汇编&#xff08;Assembly&#xff09;4. 链接&#xff08;Linking&#xff09;总结 c语言通过编译器直接编译成机器语言程序。 C语言程序的编译过程通常分为四个主要步…...

前端面试题——栈与队列、动态路由、链表

栈、队列与链表 Java数据结构栏目总结-CSDN博客 栈&#xff08;Stack&#xff09; 栈是一种后进先出&#xff08;LIFO, Last In First Out&#xff09;的数据结构。它只允许在栈顶进行添加&#xff08;push&#xff09;或删除&#xff08;pop&#xff09;元素的操作。 基本操…...

Java算法之计数排序(Counting Sort)

简介 计数排序是一种线性时间复杂度的排序算法&#xff0c;它不依赖于元素之间的比较&#xff0c;而是通过统计数组中每个元素出现的次数&#xff0c;然后根据这些统计信息对元素进行排序。这种算法特别适用于整数且整数的范围不是非常大时。 算法步骤 找出数组中的最大值。…...

【系统架构设计师-2012年】综合知识-答案及详解

更多内容请见&#xff1a; 备考系统架构设计师-核心总结索引 文章目录 【第1~2题】【第3~4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10~11题】【第12~13题】【第14~19题】【第20~21题】【第22~24题】【第25~26题】【第27~31题】【第32~33题】【第34~36题】【第37…...

webpack4手动搭建Vue项目

小满视频 很多解释使用通义灵码搜的,通义灵码的搜索结果也是有错误的全程使用pnpm包管理工具&#xff0c;和npm的用法基本一样 学习总结 1. 多看看webpack官网 2. webpack的作用&#xff1a;配置一堆东西&#xff0c;达到运行程序的目的 3. 无论什么东西都转成js&#xff0c;…...

Python爬虫所需的技术及其原理(简单易懂)

导言 随着互联网的发展&#xff0c;大量的数据被存储在网络上&#xff0c;而我们需要从中获取有用的信息。Python作为一种功能强大且易于学习的编程语言&#xff0c;被广泛用于网络爬虫的开发。本文将详细介绍Python爬虫所需的技术及其原理&#xff0c;并提供相关的代码案例。…...

FxFactory 8 for Mac 视觉特效插件包安装

Mac分享吧 文章目录 介绍页面效果一、下载软件二、开始安装1、Install安装2、显示软件页面&#xff0c;表示安装成功3、补丁安装 三、注意事项1、若已安装过其他版本&#xff0c;需要使用软件自带的卸载功能进行软件卸载&#xff0c;再安装此版本 安装完成&#xff01;&#x…...

将语义分割的标签转换为实例分割(yolo)的标签

语义分割的标签&#xff08;目标处为255&#xff0c;其余处为0&#xff09; 实例分割的标签&#xff08;yolo.txt&#xff09;,描述边界的多边形顶点的归一化位置 绘制在原图类似蓝色的边框所示。 废话不多说&#xff0c;直接贴代码&#xff1b; import os import cv2 imp…...

QT 遍历ini配置文件

在 Qt 中&#xff0c;处理 INI 配置文件是一项常见任务&#xff0c;通常使用 QSettings 类来读取和写入这些文件。QSettings 提供了一种方便的方式来操作 INI 文件中的配置数据。下面是如何使用 QSettings 遍历和处理 INI 配置文件的示例。 示例代码 假设有一个名为 config.i…...

ecmascript和javascript的区别详细讲解

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; ECMAScript 和 JavaScript是紧密相关的术语&#xff0c;但它们有着各自明确的定义和用途。要理解它们的区别&#xff0c;首先需要从它们的起源、发展历史、技术架构以及具体应用领域来分析。以下是对它们的详…...

【Python报错已解决】“ModuleNotFoundError: No module named ‘timm‘”

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 引言&#xff1a;一、问题描述1.1 报错示例&#xff1a;当我们尝试导入timm库时&#xff0c;可能会看到以下错误信息。…...

「图::存储」链式邻接表|链式前向星(C++)

前置知识 上一节我们介绍了三种基本的存图结构&#xff1a; 「图」邻接矩阵|边集数组|邻接表&#xff08;C&#xff09; 概述 他们各有优劣&#xff0c;为了综合他们的性能&#xff0c; 这一节我们来介绍两种以这三种结构为基础实现的高级存储结构&#xff1a;链式邻接表|…...

《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 10数据中心中的BGP

本章解答以下问题&#xff1a; ASN&#xff0c;团体&#xff08;community&#xff09;&#xff0c;属性&#xff08;attribute&#xff09;&#xff0c;最佳路径这些BGP术语是什么疑似&#xff1f;在数据中心中应该使用eBGP还是iBGP?在数据中心使用BGP时&#xff0c;应采用什…...

unity游戏开发——标记物体 一目了然

Unity游戏开发:标记物体,让开发变得一目了然 “好读书&#xff0c;不求甚解&#xff1b;每有会意&#xff0c;便欣然忘食。” 本文目录&#xff1a; Unity游戏开发 Unity游戏开发:标记物体,让开发变得一目了然前言1. 什么是Tag&#xff1f;2. Unity中如何添加和管理Tag步骤1&am…...

E7Helper:第七史诗自动化脚本助手完全指南

E7Helper&#xff1a;第七史诗自动化脚本助手完全指南 【免费下载链接】e7Helper 【EPIC】第七史诗多功能覆盖脚本(刷书签&#x1f343;&#xff0c;挂讨伐、后记、祭坛✌️&#xff0c;挂JJC等&#x1f4db;&#xff0c;多服务器支持&#x1f4fa;&#xff0c;qq机器人消息通知…...

DeepSeek-OCR-2GPU算力优化:单卡A10即可实时处理A4高清PDF

DeepSeek-OCR-2GPU算力优化&#xff1a;单卡A10即可实时处理A4高清PDF 1. 项目简介 DeepSeek-OCR-2是DeepSeek团队在2026年1月27日发布的开源OCR模型&#xff0c;采用了创新的DeepEncoder V2方法。这个模型的最大特点是能够根据图像的含义动态重排图像各部分&#xff0c;而不…...

终极指南:3种简单方法恢复B站经典界面,让怀旧体验重回2026

终极指南&#xff1a;3种简单方法恢复B站经典界面&#xff0c;让怀旧体验重回2026 【免费下载链接】Bilibili-Old 恢复旧版Bilibili页面&#xff0c;为了那些念旧的人。 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibili-Old 还在怀念Bilibili那个简洁经典的旧版界…...

如何集成Paper CSS到你的Web项目:从安装到部署的完整流程

如何集成Paper CSS到你的Web项目&#xff1a;从安装到部署的完整流程 【免费下载链接】paper-css Paper CSS for happy printing 项目地址: https://gitcode.com/gh_mirrors/pa/paper-css Paper CSS是一款轻量级的前端打印解决方案&#xff0c;让开发者能够轻松创建可预…...

如何快速提升中文文献管理效率:Jasminum插件3大核心功能完整指南

如何快速提升中文文献管理效率&#xff1a;Jasminum插件3大核心功能完整指南 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件&#xff0c;用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 还在…...

当你的 Agent 会“多轮思考”,Trace 却还停留在单轮:阿里云 CMS OpenClaw 可观测插件升级

作者&#xff1a;王方&#xff08;方羞&#xff09; openclaw-cms-plugin 是阿里云云监控 CMS 自研的 OpenClaw 可观测插件&#xff0c;它实现了对 OpenClaw 每次任务调用的链路追踪&#xff0c;符合 GenAI 语义规范&#xff0c;方便用户快速定位和排查问题。具体可参考&#…...

GLM-4.1V-9B-Base与Proteus联调:可视化电路仿真结果分析

GLM-4.1V-9B-Base与Proteus联调&#xff1a;可视化电路仿真结果分析 1. 硬件调试的新思路 在电子工程领域&#xff0c;电路调试一直是个耗时费力的过程。工程师们需要盯着示波器上的波形&#xff0c;手动比对预期与实际结果&#xff0c;这个过程不仅容易出错&#xff0c;还特…...

【零基础入门】本地LLM聊天机器人保姆级教程|Windows+Mac通用

本文适合&#xff1a;完全不懂Python、AI零基础小白&#xff0c;无需显卡、无需翻墙、无需付费&#xff0c;跟着步骤复制粘贴即可拥有自己的本地AI助手。 &#x1f353; 前言 最近本地大模型特别火&#xff0c;很多同学想入门&#xff0c;却被环境配置、模型部署、代码逻辑劝退…...

RWKV7-1.5B-G1A在Ubuntu系统的部署与优化实践

RWKV7-1.5B-G1A在Ubuntu系统的部署与优化实践 1. 环境准备与系统要求 在开始部署RWKV7-1.5B-G1A模型之前&#xff0c;我们需要确保Ubuntu系统满足基本要求。我推荐使用Ubuntu 20.04 LTS版本&#xff0c;因为这个版本长期支持且稳定性好&#xff0c;社区资源也丰富。 硬件方面…...

【多模态大模型——跨越感知与认知的鸿沟】第6章 工具增强与视觉Agent系统

目录 第一部分:原理详解 6.1 视觉工具使用(Visual Tool Use) 6.1.1 外部视觉工具的API调用 6.1.1.1 视觉定位(Visual Grounding)工具集成 6.1.1.2 OCR、检测、分割模型的协同调度 6.1.1.3 工具选择的决策机制 6.1.2 多工具协同的Agent架构 6.1.2.1 观察-思考-行动-…...