零基础QT学习——QComboBox

一、概要

本文章主要记录,在实际开发运行中,有关“QComboBox”相关的基础应用。

二、基础函数

函数名描述
setCurrentIndex(int num)设置当前选项的索引
currentIndex() const获取当前选中项目的索引。如果没有选中任何项目,则返回 -1
currentText() const获取当前选中项目的文本
count() const获取当前下拉框中项目的数量
itemText(int index) const获取指定索引处的项目的文本
itemData(int index, int role = Qt::UserRole) const返回指定索引处的项目的用户数据。role 参数用于指定要检索的数据的角色。
addItem(const QString &text, const QVariant &userData = QVariant())在下拉列表中添加一个项目
insertItem(int index, const QString &text, const QVariant &userData = QVariant())在指定索引处插入一个项目
removeItem(int index)移除指定索引处的项目
clear()清除下拉列表中的所有项目
currentIndexChanged(int index)当当前选中项目的索引发生变化时发射。你可以连接这个信号到一个槽函数来响应项目的改变
activated(int index)当用户选择一个项目并释放鼠标按钮或按下回车键时发射
//注释:activated()与 currentIndexChanged() 不同,activated这个信号只在用户通过用户界面进行交互时发射。

三、基础应用

1、内容居中显示

(1)、QComboBox下拉框和显示内容皆居中,其最终效果如下所示:
在这里插入图片描述
代码如下所示:

void MainWidget::initStyle()
{
	//遍历按钮中每一个值,并将其设置为居中显示,如果只遍历这个效果图如图1所示
	for (int i = 0; i < ui->qcb_test->count(); ++i)
	{
		ui->qcb_test->setItemData(i, Qt::AlignCenter, Qt::TextAlignmentRole);
	}
	
	//创建一个 " QLineEdit " 控件 QComboBox中有一个子控件就是 “QLineEdit ”,相当于借来一个居中的QLineEdit控件,替换本身自带的QLineEdit子控件样式
    auto lineEdit1 = new QLineEdit();
	lineEdit1->setAlignment(Qt::AlignCenter);
	lineEdit1->setReadOnly(true);
	lineEdit1->installEventFilter(this);
	ui->qcb_test->setLineEdit(lineEdit1);

  //当前显示索引号为0的值
	ui->qcb_test->setCurrentIndex(0);
}

(2)、下拉框文本居中。//如果只遍历QComboBox中的值居中的话,显示效果如下所示:
在这里插入图片描述

//代码如下所示:
//遍历按钮中每一个值,并将其设置为居中显示
	for (int i = 0; i < ui->qcb_test->count(); ++i)
	{
		ui->qcb_test->setItemData(i, Qt::AlignCenter, Qt::TextAlignmentRole);
	}
  //当前显示索引号为0的值
	ui->qcb_test->setCurrentIndex(0);

(3)、显示效果居中。创建一个 " QLineEdit " 控件 QComboBox中有一个子控件就是 “QLineEdit ”,相当于借来一个居中的QLineEdit控件,替换本身自带的QLineEdit子控件样式。效果如下所示:
在这里插入图片描述

	//创建一个 " QLineEdit " 控件 QComboBox中有一个子控件就是 “QLineEdit ”,相当于借来一个居中的QLineEdit控件,替换本身自带的QLineEdit子控件样式
    auto lineEdit1 = new QLineEdit();
	lineEdit1->setAlignment(Qt::AlignCenter);
	lineEdit1->setReadOnly(true);
	lineEdit1->installEventFilter(this);
	ui->qcb_test->setLineEdit(lineEdit1);
	
  //当前显示索引号为0的值
	ui->qcb_test->setCurrentIndex(0);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值