Qt自定义控件之可复选的ComboBox

  在项目开发中,使用qt的原生控件可能打不到产品的需求。所以我们会经常自定义一些控件,以达到我们想要的效果。这个系列主要积累一些本人自定义过的控件的开发。
  可复选的ComboBox,如下图所示:
在这里插入图片描述
  如上,这个ComboBox下拉后,它是有复选框的,所以可以多选。这种控件很适合当复选项很多的情况下使用,节省了很多空间。
  这里使用的核心控件有QListWidgetItem、QCheckBox。主要是将QCheckBox作为QListWidget的QListWidgetItem加入进去。

 	m_pListWidget = new QListWidget();
	QListWidgetItem* pItem = new QListWidgetItem(m_pListWidget);
	m_pListWidget->addItem(pItem);
	QCheckBox *pCheckBox = new QCheckBox();
	pCheckBox->setText(tr("Select all"));
	m_pListWidget->addItem(pItem);
	m_pListWidget->setItemWidget(pItem, pCheckBox);
	this->setModel(m_pListWidget->model());
	this->setView(m_pListWidget);
	this->setEditable(true);
	this->lineEdit()->setReadOnly(true);

  如上,使用setItemWidget将QCheckBox具体话为QListWidget的一个元素,并添加进去,这样就可以看到一个可选的复选框。
  同理,当有多个的时候,按照同样的方式将其加入到QListWidget中就可以了。然后就是选择复选框后,可以使用QList来记录已选的选项。关于对控件的其他操作例如增加和删除一个选项的代码这里就不贴了。

更多技术和资源分享,请关注我的公众号 “非正经码农”:
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非正经程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值