QT开发技巧之QComboBox通过qss设置item高度,增加间隔

news2024/10/7 20:28:29

1.问题描述

QComboBox默认的下拉item间距太小,字挤在一起不好看,直接qss设置item高度但是没效果

2.解决后效果

可通过qss设置item的最小高度,增加间距,不同字体大小的combobox都能使用,简单方便

3.代码实现

 (1)新建一个类继承自QComboBox,比如我这里是MyQComboBox 

 .h文件如下

#ifndef MYQCOMBOBOX_H
#define MYQCOMBOBOX_H

#include <QComboBox>

class MyQComboBox : public QComboBox
{
    Q_OBJECT
public:
    MyQComboBox(QWidget *parent = nullptr);
    void setFont(const QFont &font);

protected:

};

#endif // MYQCOMBOBOX_H

.c文件如下

#include "myqcombobox.h"
#include <QComboBox>
#include <QListView>
#include <QtDebug>


MyQComboBox::MyQComboBox(QWidget *parent):QComboBox(parent)
{

}

void MyQComboBox::setFont(const QFont &font)
{
    //添加listView才能通过qss设置item高度
    QListView* listView = new QListView(this);
    listView->setFont(font);
    this->setView(listView);

    QComboBox::setFont(font);
}

(2)设计窗口点combobox 右键,提升为新建的MyQComboBox,并且设置一下字体和大小

 (3)添加qss,就可以指定item的最小高度了


/* combobox 下拉item最小高度 */
QComboBox QAbstractItemView::item { 
min-height: 40px;
}

4.原理

QComboBox 想实现修改item的高度需要设置视图比如QListView,这里通过继承类来实现修改setFont函数,添加QListView到QComboBox ,从而节省的人工代码为每一个ComboBox 添加QListView麻烦,因为ui在初始化时会自动调用setFont,而我们只需要在提升一下控件就可以了

5.工程下载

点击下载

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

葡萄牙语翻译,北京哪个公司比较好?

近年来&#xff0c;随着中国与各葡语系国家&#xff0c;特别是与巴西经贸、科技、文化交流的不断扩大&#xff0c;葡萄牙语翻译的需求也越来越大&#xff0c;但是专业葡语翻译人才紧缺。那么&#xff0c;如何做好葡萄牙语翻译&#xff0c;北京葡语翻译公司哪家好&#xff1f; 我…

分布式消息服务设计

分布式消息服务设计 背景 为了解决当A系统的一个“操作”需要发送一个通知&#xff08;生产者&#xff09;&#xff0c;由关心这个操作的业务&#xff08;消费者&#xff09;订阅消息并处理时&#xff0c;实现业务解耦&#xff0c;并适合分布式。本文主要讲解以消息中间件Rab…

Debug_性能分析工具_Perf +

目录 1. perf 作用 2. perf 安装 3. perf 使用示例 3.1 耗时统计&#xff0c;画出火焰图 1. 下载绘制火焰图的开源pl代码 2. 执行以下命令 3. 用浏览器打开svg文件&#xff0c;看当前进程各子模块耗时占比 1. perf 作用 Perf 是Linux kernel自带的系统性能优化工具。 P…

HCIA-HarmonyOS Application Developer学习笔记

目录 一、HarmonyOS 介绍二、HarmonyOS 应用开发流程HarmonyOS 系统架构HarmonyOS 子系统集DevEco StudioHarmonyOS 应用包结构使用资源文件的方法权限管理分布式能力 三、Ability 设计与开发Ability 的概念和分类页面生命周期Intent载体页面间导航Particle Ability 开发 四、U…

使用Vue脚手架2

ref属性 src/components/SchoolName.vue <template><div class"school"><h2>学校名称&#xff1a;{{name}}</h2><h2>学校地址&#xff1a;{{address}}</h2></div> </template><script>export default {name:…

【C++修炼之路】31.异常

每一个不曾起舞的日子都是对生命的辜负 异常 一.C语言传统的处理错误的方式二.C异常概念三.异常的使用3.1 异常的抛出和捕获3.2 异常的重新抛出3.3 异常安全3.4 异常规范 四.自定义异常体系五.C标准库的异常体系六.异常的优缺点 一.C语言传统的处理错误的方式 传统的错误处理机…

Idea运行springboot项目(保姆级教学)

**大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯…

PHP:对比数据库,隐藏不满足条件的标签;对比数据库,将标签中的内容更改为数据库中的对应项

一、查询数据库数据&#xff0c;A列数据如果等于前端div中的值&#xff0c;那么将div中的值给其赋值为对应数据库中B列的值 如下案例&#xff1a;以第一个为例&#xff0c;如果id为append1&#xff0c;并且此id等于满足条件的数据库中colum_name列中的append1&#xff0c;就将…

Windows安装 PostgreSQL数据库并进行简单数据操作

介绍&#xff1a; 在开发和管理数据库应用程序时&#xff0c;选择合适的数据库管理系统是至关重要的。PostgreSQL 是一个强大且广受欢迎的开源关系型数据库管理系统&#xff0c;它具有稳定性、可靠性和丰富的功能。本文将介绍如何在 Windows 操作系统上下载、安装 PostgreSQL&a…

6. QT环境下使用OPenCV(利用鼠标实现图像的ROI区域选择)

1. 说明 一张图像显示的内容可能并非所有的都是有用信息,有时需要选定某些区域做出特殊的处理。在OPenCV当中可以在图像上响应鼠标的操作,选取出图像上的特殊区域 — ROI区域。 效果展示: 2. 实现步骤 首先在QtCreator中创建一个新的widget项目,并配置好OPenCV的开发环…

【GIS】Python多线程转换NC格式文件为TIFF

汇总 【GIS】使用cdsapi下载ERA5和ERA5_land逐小时数据 NC格式介绍 说明 NC文件读取使用netCDF4,NC文件转换为TIF使用rasterio或者GDAL。 一些细节: 格点数据转换为TIFF文件时候,计算六参数时候,应该要考虑,格点数据存储的坐标属于栅格中心点的位置,转换为TIFF时候,…

Vue3中使用async-validator进行表单校验

官方文档&#xff1a;mirrors / yiminghe / async-validator GitCodevalidate form asynchronous &#x1f680; Github 镜像仓库 &#x1f680; 源项目地址 ⬇https://gitcode.net/mirrors/yiminghe/async-validator?utm_sourcecsdn_github_accelerator 注意&#xff1a;当…

19 | 为什么我只查一行的语句,也执行这么慢?

以下内容出自 《MySQL 实战 45 讲》 19 | 为什么我只查一行的语句&#xff0c;也执行这么慢&#xff1f; 第一类&#xff1a;查询长时间不返回 mysql> select * from t where id1;一般碰到这种情况。大概率是表 t 被锁住了。 分析&#xff1a; 首先执行 show processlis…

2023年全球性别差距调研 | 真正的“性别平等”如何实现?

尽管在推进性别平等方面做出了努力&#xff0c;但女性在许多方面仍然落后于男性--从房屋所有权到劳动力参与和董事会占比。虽然新冠疫情带来了前所未有的促进性别平等的政策&#xff0c;但它对结构性变化的影响却很小。 实际上&#xff0c;世界经济论坛估计还需要132年才能消除…

Luogu P1140.数的划分

P1140 数的划分 原题点这里 思路 这是一道动态规划的题目。 步骤主要分 5 5 5 步&#xff1a; 状态的定义转移式的推到递推顺序的判定边界的确定结果的输出 下面&#xff0c;我们针对这道题&#xff0c;细细地讲解一下每一个步骤 一、状态的定义 这道题的状态最简单&a…

面试题分析:统计网站访问次数

难度&#xff1a;较低 平台的访问量非常高&#xff0c;需要实时统计网站的访问次数&#xff0c;请设计一个计数器解决&#xff1a;初级工程师&#xff0c;可能回答使用synchronized锁或重入锁&#xff0c;进一步探讨&#xff0c;synchronized锁太重&#xff0c;有没其他方式&a…

redisson中Semaphore的信号量介绍及其原理

目录 1 基本介绍 1.1API介绍 1.2 示例 2 源码解析 2.1 Semaphore设置许可数量&#xff08;trySetPermits(int permits)&#xff09; 2.2 尝试获取许可&#xff08;boolean tryAcquire()&#xff09; 3 Lua脚本 3.1 加锁lua脚本 3.2 解锁lua脚本 1 基本介绍 Semaphore通…

科技资讯|苹果Vision Pro新专利曝光,与消除晕动症的技术有关

欧洲专利局发布了一份苹果专利&#xff0c;与消除 Apple Vision Pro 晕动病背后的一些工作有关。苹果通过推出新的 R1 处理器实现了这一目标&#xff0c;苹果专利提供了处理器背后的一些详细技术信息&#xff0c;在第 86 号专利点指出&#xff1a;" 在某些实施方案中&…

驾驭计算机视觉的翅膀:论文找代码的几种必杀技!

摘要 对于CVer来说&#xff0c;「代码和找代码」能力都是一种很重要的能力&#xff0c;毕竟idea再好只有通过代码实现出来才能发文章和刷榜。当我们阅读一篇高质量或者英文论文时&#xff0c;如何去找到该文章实现的代码&#xff0c;进而结合文章内容和代码实现去更好的理解作…

PoseiSwap 更新第二期空投,持有 Zepoch 节点数量将决定空投回报

Nautilus Chain 是行业内首个模块化 Layer3 架构链&#xff0c;开发者能够基于模块化进行定制化开发&#xff0c;并有望进一步推动 Web3 应用向隐私、合规等方向发展。当然&#xff0c;Nautilus Chain 的特殊之处还在于为生态用户带来丰厚的空投预期&#xff0c;据悉上线 Nauti…