setText(selected_data);}else{line_edit_->clea。一 MultiSelectComboBox Qt 下拉复选框 实现下拉框多选( 四 )。" />

一 MultiSelectComboBox Qt 下拉复选框 实现下拉框多选( 四 )

(widget);if (check_box->isChecked()){selected_data.append(check_box->text()).append(";");}}selected_data.chop(1);if (!selected_data.isEmpty()){line_edit_->setText(selected_data);}else{line_edit_->clear();}line_edit_->setToolTip(selected_data);emit selectionChange(selected_data);}void MultiSelectComboBox::onSearch(const QString& _text){for (int i = 1; i < list_widget_->count(); i++){QCheckBox *check_box = static_cast(list_widget_->itemWidget(list_widget_->item(i)));//文本匹配则显示,反之隐藏//Qt::CaseInsensitive模糊查询if (check_box->text().contains(_text, Qt::CaseInsensitive))list_widget_->item(i)->setHidden(false);elselist_widget_->item(i)->setHidden(true);}}void MultiSelectComboBox::itemClicked(int _index){if (_index != 0){QCheckBox *check_box = static_cast(list_widget_->itemWidget(list_widget_->item(_index)));check_box->setChecked(!check_box->isChecked());}}
总结
通过这次制作下拉复选框,深入的了解了的组成 。
存在问题:1、输入框不能输入中文 。
2、输入框点击后,再次点击不能隐藏下拉框
3、点击item空白部分会直接隐藏下拉框
优化:样式优化,后续有时间优化后会继续更新 。
【一 MultiSelectComboBoxQt 下拉复选框 实现下拉框多选】如果此文帮助到你( ?? ω ?? )?,动动小手点个赞可好O(∩_∩)O 。