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

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx