Qt之QComboBox输入等操作

概述:

QComboBox控件是按钮和弹出列表的组合;
组合框是显示当前内容的选择类控件,并且可以弹出可选项列表;
包含很多灵活使用的属性:
1.添加项
addItem(const QString &text, const QVariant &userData = QVariant())
addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant())
addItems(const QStringList &texts)
2.移除项
removeItem(int index)
3.插入分隔符
insertSeparator(int index)
4.设置可编辑
setEditable(bool editable)
5.设置插入策略
setInsertPolicy(QComboBox::InsertPolicy policy)
6.是否可以输入重复项
void setDuplicatesEnabled(bool enable)
7.设置调整策略
setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy policy)

常量描述
QComboBox::AdjustToContents组合框将始终根据内容进行调整
QComboBox::AdjustToContentsOnFirstShow组合框将在第一次显示时调整为其内容
QComboBox::AdjustToMinimumContentsLength请改用AdjustToContents或AdjustToContentsOnFirstShow。
QComboBox::AdjustToMinimumContentsLengthWithIcon组合框将调整为最小内容长度加上图标的空间。出于性能原因,请在大型模型上使用此策略。

代码示例:

.h:

#pragma once
/*
 *  @功能:实现ComBox控件可编辑、下拉选项、设置图标、输入项进行添加、原有项修改等操作;
 *	@时间:2021-3-30
 *	@作者:Fantast
 */
#include <QtWidgets/QWidget>
#include "ui_comBoxTest.h"
#include <QComboBox>
#include <QHBoxLayout>

class comBoxTest : public QWidget
{
	Q_OBJECT

public:
	comBoxTest(QWidget *parent = Q_NULLPTR);

private:
	void init();

private:
	Ui::comBoxTestClass ui;
};

.cpp:

#include "comBoxTest.h"

comBoxTest::comBoxTest(QWidget *parent)
	: QWidget(parent)
{
	ui.setupUi(this);
	setStyleSheet("background-color:rgb(41, 73, 84)");
	init();
}

void comBoxTest::init()
{
	QComboBox *comboBox = new QComboBox;
	comboBox->setEditable(true);				//设置可编辑
	comboBox->setDuplicatesEnabled(true);		//此属性保留用户是否可以在组合框中输入重复项	
	comboBox->insertSeparator(0);				//插入分隔符
	comboBox->setInsertPolicy(QComboBox::InsertAtCurrent);//当前字符串被替换
	for (int i = 0; i < 5;i++)
	{
		comboBox->addItem(/*QIcon(":/Resources/image/print.png"),*/ QString::fromLocal8Bit("打印%1").arg(i));
	}
	comboBox->setItemIcon(1, QIcon(":/Resources/image/print_preview.png"));
	comboBox->setItemIcon(2, QIcon(":/Resources/image/save.png"));
	comboBox->setItemIcon(3, QIcon(":/Resources/image/save_as.png"));
	comboBox->setItemIcon(4, QIcon(":/Resources/image/print.png"));
	comboBox->setItemIcon(5, QIcon(":/Resources/image/page_setup.png"));

	QHBoxLayout *layout = new QHBoxLayout;
	layout->addWidget(comboBox);

	this->setLayout(layout);
	this->setWindowTitle("Fantast");
}

运行效果图:

在这里插入图片描述

over:

欢迎大家关注作者在文末评论、点赞、转发以及批评指正!
如果大家有更好的方法或有问题可以在文末评论一起讨论!
共同学习!
共同进步!

文末一句话:

误解是人生常态,理解本是稀缺的例外;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值