在QComboBox的基础上实现复选功能

所选中的项目在显示框中出现

下面根据网上的提示代码(参照博客 一去二三里),主要实现如下代码(与参照略有不同):

实现方案:

QListWidget、QListWidgetItem、QComboBox

初始化控件及模拟数据填充:

在QComboBox的基础上实现复选功能

在QComboBox的基础上实现复选功能

1 comboBox = new QComboBox(this); //初始化显示控件 2 3 QHBoxLayout* mainLayout = new QHBoxLayout(this); 4 mainLayout->addWidget(comboBox); 5 setLayout(mainLayout); 6 7 //初始化数据源 8 listWidget = new QListWidget; 9 for(int i = 0; i < 5; ++i) 10 { 11 QListWidgetItem* item = new QListWidgetItem(tr.("Item %1").arg(i)); 12 item->setCheckState(Qt::Unchecked); //显示复选框 13 14 listWidget->addItem(item); 15 } 16 17 //默认选中第一个数据 18 QListWidgetItem* item = listWidget->item(0); 19 if(item) 20 { 21 item->setCheckState(Qt::Checked); 22 } 23 24 //设置数据源到显示控件中 25 comboBox->setModel(listWidget->model()); 26 comboBox->setView(listWidget); 27 28 //设置只读编辑框 29 comboBox->setEditable(true); 30 QLineEdit* lineEdit = comboBox->lineEdit(); 31 if(lineEdit) 32 { 33 lineEdit->setReadOnly(true); 34 } 35 36 setMinimumWidth(200); 37 38 //更新显示的内容 39 connect(comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(onCurrentIndexChanged(int)));

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspygj.html