QT-QComboBox用法记录(设置下拉列表Item项的文本颜色,背景色,高度等)

本文主要是介绍QT-QComboBox用法记录(设置下拉列表Item项的文本颜色,背景色,高度等),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

效果图:

相关成员函数:

ui.comboBox->setCurrentIndex(index);        //设置指定索引号显示 
int index = ui.comboBox->currentIndex();     //获取当先显示的索引号
int iCount = ui.comboBox->count();               //获取总Item数

//增
ui.comboBox->addItem("添加的文本");    //添加文本
ui.comboBox->addItem(QPixmap(":/TestComboBox/Resources/邮箱.png"), "添加的文本");    //添加图标及文本
//删
ui.comboBox->removeItem(index);    //删除指定项
ui.comboBox->clear();                         //清空下拉列表框
//查
ui.comboBox->itemIcon(index); //获取指定项的图标数据
ui.comboBox->itemText(index); //获取指定项的文本数据 
//改
ui.comboBox->setItemText(index, "1");  //修改指定项的文本 
ui.comboBox->setItemIcon(index, QPixmap(":/TestComboBox/Resources/deletered.png")); //修改指定项的图标
//插
ui.comboBox->insertItem(index, "123");  //在指定索引号处插入文本 
ui.comboBox->insertItem(index, QPixmap(":/TestComboBox/Resources/邮箱.png"), "123"); //在指定索引号处插入图标与文本

//设置代理
ui.comboBox->setItemDelegate(pMyQStyledItemDelegate);    

修改某项的文本颜色,背景色,文本对齐方式:

#include <QStandardItemModel>

QStandardItemModel *pItemModel = qobject_cast<QStandardItemModel*>(ui.comboBox->model());

//先添加Item才能修改
    for (int i = 0; i < 10; i++) {
        ui.comboBox->addItem("");    //先添加一个Item,内容随便填,反正下面要修改
        //int iCount = ui.comboBox->count();    //获取总Item数
        //m->item(iCount)->setFont(font);
        pItemModel->item(i)->setIcon(QIcon(":/TestComboBox/Resources/deletered.png"));    //修改某项图标
        pItemModel->item(i)->setText("修改的文本  " + QString::number(i + 1));                          //修改某项文本
        pItemModel->item(i)->setForeground(QColor(255, 0, 0));            //修改某项文本颜色
        pItemModel->item(i)->setBackground(QColor(220,220,220));    //修改某项背景颜色    
        pItemModel->item(i)->setTextAlignment(Qt::AlignVCenter | Qt::AlignLeft);    //修改某项文本对齐方式
    }

//---------------------------相关参数说明-------------------------------------//

QFont font;
//font.setFamily("微软雅黑");  //字体
//font.setPixelSize(10);       //文字像素大小
//font.setPointSize(15);       //文字大小
//font.setUnderline(true);     //下划线
//font.setStrikeOut(true);     //中划线
//font.setOverline(true);      //上划线
//font.setItalic(true);        //斜体
//font.setBold(true);          //粗体
//font.setStyle(QFont::StyleOblique);
//font.setCapitalization(QFont::Capitalize);            //首字母大写
//font.setLetterSpacing(QFont::PercentageSpacing, 200); //间距

文本对齐方式:
1)Qt::AlignLeft::   水平方向靠左。
2)Qt::AlignRight:   水平方向靠右。
3)Qt::AlignHCenter: 水平方向居中。
4)Qt::AlignJustify: 水平方向调整间距两端对齐。
5)Qt::AlignTop:     垂直方向靠上。
6)Qt::AlignButton:  垂直方向靠下。
7)Qt::AlignVCenter: 垂直方向居中。
8)Qt::AlignCenter:  等价于 Qt::AlignHCenter | Qt::AlignVCenter。

设置行高:

需要子类化 QStyledItemDelegate

#include <QStyledItemDelegate>

class MyQStyledItemDelegate : public QStyledItemDelegate
{
    Q_OBJECT

public:
    MyQStyledItemDelegate(int height, QObject *parent) : QStyledItemDelegate(parent), m_Height(height) {}
    ~MyQStyledItemDelegate() {}

public:
    int m_Height;

    QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const {
        QSize size = QStyledItemDelegate::sizeHint(option, index);
        size.setHeight(m_Height);    //这里设置高度
        return size;
    }
    void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const {
        QStyledItemDelegate::paint(painter, option, index);
    }
};

//------------------------------------------------------------------------------------------------------------------------------------------//

用法:
MyQStyledItemDelegate *pMyQStyledItemDelegate = new MyQStyledItemDelegate(30, this);  //构造的时候传入高度
ui.comboBox->setItemDelegate(pMyQStyledItemDelegate);    //设置代理

这篇关于QT-QComboBox用法记录(设置下拉列表Item项的文本颜色,背景色,高度等)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/qq_22723497/article/details/89394937
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/835381

相关文章

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)