📅  最后修改于: 2023-12-03 15:19:38.610000             🧑  作者: Mango
本文介绍如何使用Qt框架中的小部件列表集(QListWidget)来实现已选中对象的功能,包括如何添加、移除和获取已选中对象等。
首先,我们需要创建一个QListWidget小部件,并添加一些条目:
QListWidget* listWidget = new QListWidget(this);
listWidget->addItem("Item 1");
listWidget->addItem("Item 2");
listWidget->addItem("Item 3");
接着,我们可以使用以下代码获取已选中的条目列表:
QList<QListWidgetItem*> selectedItems = listWidget->selectedItems();
得到的selectedItems是一个QList,我们可以使用foreach循环遍历并输出每个条目的文本:
foreach(QListWidgetItem* item, selectedItems)
{
qInfo() << item->text();
}
如果需要移除所有已选中的条目,可以使用以下代码:
foreach(QListWidgetItem* item, selectedItems)
{
delete item;
}
如果希望在添加新的条目时自动设置其选择状态,可以使用以下代码:
listWidget->setSelectionMode(QAbstractItemView::MultiSelection);
listWidget->setSelectionBehavior(QAbstractItemView::SelectItems);
listWidget->setFocusPolicy(Qt::NoFocus);
listWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
listWidget->viewport()->setAttribute(Qt::WA_Hover, true);
connect(listWidget, SIGNAL(itemPressed(QListWidgetItem*)), this, SLOT(onItemPressed(QListWidgetItem*)));
void MainWindow::onItemPressed(QListWidgetItem* item)
{
if(item)
{
item->setSelected(!item->isSelected());
}
}
上述代码可以在添加条目时启用多选模式,并设置选择行为。在小部件获取焦点时,将其焦点策略设置为无焦点。将编辑触发器设置为“NoEditTriggers”以禁止编辑条目。在小部件视图上设置悬停属性,以使悬停时显示工具提示。还可以使用slot槽函数onItemPressed来设置条目的选择状态。
使用Qt框架中的小部件列表集,可以轻松实现已选中对象的功能,包括添加、移除和获取已选中对象等。以上代码只是一个示例,可根据需求进行修改和完善。