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项的文本颜色,背景色,高度等)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/835381

相关文章

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

Java8 Collectors.toMap() 的两种用法

《Java8Collectors.toMap()的两种用法》Collectors.toMap():JDK8中提供,用于将Stream流转换为Map,本文给大家介绍Java8Collector... 目录一、简单介绍用法1:根据某一属性,对对象的实例或属性做映射用法2:根据某一属性,对对象集合进行去重二、Du

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

Python 常用数据类型详解之字符串、列表、字典操作方法

《Python常用数据类型详解之字符串、列表、字典操作方法》在Python中,字符串、列表和字典是最常用的数据类型,它们在数据处理、程序设计和算法实现中扮演着重要角色,接下来通过本文给大家介绍这三种... 目录一、字符串(String)(一)创建字符串(二)字符串操作1. 字符串连接2. 字符串重复3. 字

Python中的sort方法、sorted函数与lambda表达式及用法详解

《Python中的sort方法、sorted函数与lambda表达式及用法详解》文章对比了Python中list.sort()与sorted()函数的区别,指出sort()原地排序返回None,sor... 目录1. sort()方法1.1 sort()方法1.2 基本语法和参数A. reverse参数B.

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的

Java Instrumentation从概念到基本用法详解

《JavaInstrumentation从概念到基本用法详解》JavaInstrumentation是java.lang.instrument包提供的API,允许开发者在类被JVM加载时对其进行修改... 目录一、什么是 Java Instrumentation主要用途二、核心概念1. Java Agent

Java实现为PDF设置背景色和背景图片

《Java实现为PDF设置背景色和背景图片》在日常的文档处理中,PDF格式因其稳定性和跨平台兼容性而广受欢迎,本文将深入探讨如何利用Spire.PDFforJava库,以简洁高效的方式为你的PDF文档... 目录库介绍与安装步骤Java 给 PDF 设置背景颜色Java 给 PDF 设置背景图片总结在日常的

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别