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

相关文章

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

PyCharm如何设置新建文件默认为LF换行符

《PyCharm如何设置新建文件默认为LF换行符》:本文主要介绍PyCharm如何设置新建文件默认为LF换行符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录PyCharm设置新建文件默认为LF换行符设置换行符修改换行符总结PyCharm设置新建文件默认为LF

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二