QT原生控件-QComboBox的使用及样式

前言


本文主要介绍的是使用代码生成的情况下对控件的介绍,包括拥有的功能及能修改的样式,也会说明在qtdesiner拖拽控件生成和使用代码生成控件的区别(如果有的话,遇到了的会说),此版本不属于最终版本,以后遇到什么新奇的点会继续更新!本文基于QT官方的文档进行的编写,QT版本为qt 5.14.0,编写环境为Windows11。不得不说官方文档真是个好东西,有时候有些不会的上去一看就能有灵感解决了,可惜没有中文版本的。

一、QComboBox初步介绍

QComboBox也是开发过程中最常用的控件之一,称为下拉控件,非常的强大。

二、基本功能

1.创建

QComboBox* box = new QComboBox();

2.添加项

1)addItem()
添加单个项

void addItem(const QString &text, const QVariant &userData = QVariant());

void addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant());

2)addItems()
添加多个项

void addItems(const QStringList &texts);

3.插入项

1)insertItem()
在指定索引处插入单个项

void insertItem(int index, const QString &text, const QVariant &userData = QVariant());

void insertItem(int index, const QIcon &icon, const QString &text, const QVariant &userData = QVariant());

2)insertItems()
在指定索引处插入多个项

void insertItems(int index, const QStringList &list);

3)insertSeparator()
插入分隔线

void insertSeparator(int index); // 插入分隔线

在这里插入图片描述

4.移除项

1)removeItem()
根据索引值移除单个项

void removeItem(int index);

5.当前项操作

1)currentIndex()
获取当前项索引

int currentIndex() const;

2)setCurrentIndex()
设置当前选择项为特定索引的项

void setCurrentIndex(int index);

3)currentText()
获取当前项的文本内容

QString currentText() const;

4)setCurrentText()
设置当前选择项为特定文本的项

void setCurrentText(const QString &text); // 可编辑时使用

5)currentData()
获取当前项的Data,类似Property

QVariant currentData(int role = Qt::UserRole) const;

6.项查询、访问与限制

1)count()
获取当前ComboBox拥有的项的数量

int count() const;

2)findText()
查找文本内容为目标值的项

int findText(const QString &text, Qt::MatchFlags flags = ...) const;

3)findData()
查找Data内容为目标值的项

int findData(const QVariant &data, int role = Qt::UserRole, Qt::MatchFlags flags = ...) const;

4)itemText()
获取项的文本内容

QString itemText(int index) const;

5)itemIcon()
获取项的Icon

QIcon itemIcon(int index) const;

6)itemData()
获取项的Data

QVariant itemData(int index, int role = Qt::UserRole) const;

7)setItemText()
设置项的文本内容

void setItemText(int index, const QString &text);

8)setItemIcon()
设置项的Icon

void setItemIcon(int index, const QIcon &icon);

9)setItemData()
设置项的Data

void setItemData(int index, const QVariant &value, int role = Qt::UserRole);

10)maxCount()
获取QComboBox的最大项数限制,默认为int的最大正整数

int maxCount() const;

11)setMaxCount()
设置QComboBox的最大项数限制

void setMaxCount(int max);

7.视图与模型

这一块的话暂时先列出来,后面再单独出一篇来介绍M/V模型
1)view()
视图

QAbstractItemView *view() const;

2)setView()
设置视图

void setView(QAbstractItemView *itemView);

3)model()
模型

QAbstractItemModel *model() const;

4)setModel()
设置模型

void setModel(QAbstractItemModel *model);

5)modelColumn()
模型列

int modelColumn() const;

6)setModelColumn()
设置模型列

void setModelColumn(int visibleColumn);

8.扩展中。。。。

三、信号

1)currentIndexChanged
当前项索引改变触发

void currentIndexChanged(int index);

2)currentTextChanged
当前文本改变触发

void currentTextChanged(const QString &text);

3)activated
项被点击激活触发

void activated(int index);      

4)textActivated
项被点击激活触发

void textActivated(const QString &text);

5)editTextChanged
项在可编辑模式下时改变文本触发

void editTextChanged(const QString &text);

6)highlighted
项被高亮触发,就是用户把鼠标悬停在项上时触发,不用点击激活

void highlighted(int index); 

7)highlighted
如上,返回文本

void highlighted(const QString &text);

四、QComboBox样式

选择器

1)::drop-down
下拉箭头按钮

QComboBox::drop-down 
{
    background-color:red;
}

2)::down-arrow
下拉按钮上的箭头图标

QComboBox::down-arrow {
    image: url(:/icons/down_arrow.png);
}

3)QAbstractItemView
下拉菜单

QComboBox QAbstractItemView 
{
    border: 1px solid #c0c0c0;
	  color:white;
    background: black;
    selection-background-color: #2a82da;
    selection-color: white;
    outline: 0; /* 禁用焦点虚线框 */
}

在这里插入图片描述
在开发工作中我也自定义写过一个QComboBox,为了更灵活的写样式使用了MV模型,后面会出一篇介绍这个自定义QComboBox的实现
在这里插入图片描述

本次分享就到这里了,如果有什么错误的话请指正,或者有什么疑问的,也可以在评论区一起探讨!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值