QListWidget更新item后重绘
我将listwidget与combobox绑定后
ui.comboBox->setModel(listWidget->model());
ui.comboBox->setView(listWidget);
ui.comboBox->clear();
当根据存储数据QStringList valueList的值重新载入listwidget后
删除后的SlotRemoveProperty槽函数
ui.comboBox->clear(); //清空item
CleanAll *cleanall = new CleanAll; //新建一个全部清空功能的item
QListWidgetItem *list_item = new QListWidgetItem(listWidget);
listWidget->setItemWidget(list_item, cleanall);
connect(cleanall, &CleanAll::signal_DeleteAllClick, this, &UserComboBox::slot_Clean);
for (int i = 0; i < valueList.size(); i++) {
if (QString::compare(valueList[i], QString("")) != 0)
MyAddItem(valueList[i]); //根据valuelist添加新item
myadditem函数:
ComboBoxItem *item = new ComboBoxItem();//一个由button(删除按钮)和label组成的widget
item->setLabelText(text);
//点击删除按钮发出信号:
connect(item, &ComboBoxItem::SignalDeleteProperty, this, &UserComboBox::SlotRemoveProperty);
connect(item, &ComboBoxItem::SignalShowClicked, this, &UserComboBox::SlotShowItem);
QListWidgetItem *list_item = new QListWidgetItem();
item->setProperty("value",text);
listWidget->insertItem(listWidget->count() - 1, list_item);
listWidget->setItemWidget(list_item, item);
删除前:
删除后:
点击全部删除:
listwidget长度不能正常显示,只能在下拉框关闭后重新打开才能正常显示