Qt QComboBox详解

下拉框是一个组合控件(包含一个文本显示控件和一个按钮)。

一、设计器编辑

在这里插入图片描述

二、信号函数

  • void editTextChanged(const QString &); 只有用户编辑时,内容改变时触发。
  • void activated(int index); 用户选中下拉列表某一项触发,编辑和代码改变索引时不会触发。
  • void activated(const QString &);
  • void highlighted(int index); 高亮时被触发,就是鼠标移动到某个下拉项时。
  • void highlighted(const QString &);
  • void currentIndexChanged(int index); 改变当前索引触发,包括代码里设置索引
  • void currentIndexChanged(const QString &);
  • void currentTextChanged(const QString &);改变当前编辑框内容和选择下拉框选项时触发

三、常用操作

1. 增加

  • void addItem(const QString &text, const QVariant &userData = QVariant()); //一次添加一个下拉项,默认在尾部添加。
  • void addItem(const QIcon &icon, const QString &text,const QVariant &userData = QVariant());一次添加一个下拉项,且带有图标,默认在尾部添加。
  • void addItems(const QStringList &texts);一次添加多个下拉项

2. 删除

  • void removeItem(int index); 删除指定索引的下拉项。
  • void clear(); 清除当前编辑框内容和所有下拉列表项。
  • void clearEditText(); 清除当前编辑框内容,但是不清除下拉选项列表。

3. 插入

  • 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());
  • void insertItems(int index, const QStringList &texts);

4. 其他常用方法

  • int currentIndex() const; 返回当前索引

  • QString currentText() const; 返回当前文本

  • QVariant currentData(int role = Qt::UserRole) const; 返回当前用户自定义数据

  • QString itemText(int index) const;返回当前索引对应的文本

  • QIcon itemIcon(int index) const; 返回当前索引对应的图标

  • QVariant itemData(int index, int role = Qt::UserRole) const; 返回当前索引对应的用户自定义数据

Qt QVariant详细用法参考博客:Qt QVariant详细用法

5.完整代码演示

struct MyType
{
	int x = 0;
	int y = 0;
};
Q_DECLARE_METATYPE(MyType)	//注册,必不可少

QtWidgetsApplication1::QtWidgetsApplication1(QWidget *parent)
    : QWidget(parent)
{
    ui.setupUi(this);
	ui.comboBox->clear();	//清除编辑编辑框和和下拉列表的数据
	QVariant var;
	MyType myType;
	myType.x = 250;
	var.setValue(myType);
	ui.comboBox->addItem("ComboBox001",var);
	ui.comboBox->addItem("ComboBox002");
	ui.comboBox->addItem(QIcon(":/QtWidgetsApplication1/Resources/timg.gif"), "ComboBox003");

	QStringList list = { "ComboBox004","ComboBox005" };
	ui.comboBox->addItems(list);

	ui.comboBox->insertItem(1, "Insert");

	void (QComboBox::*p)(const QString &) = &QComboBox::highlighted;
	connect(ui.comboBox, p, [=](const QString &text) {

		//QVariant var = ui.comboBox->itemData(index);
		访问用户自定义数据
		//qDebug() << var.value<MyType>().x << endl;
		//qDebug() << ui.comboBox->currentText() << endl;
		qDebug() << text << endl;
	});
}

四、设置样式

Qt样式表(QComboBox下拉框)

  • 7
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值