qlistwidget :: setEditTriggers(qabstractitemview :: AnyKeypr

QListWidget::setEditTriggers(QAbstractItemView::AnyKeyPressed) not working

本文关键字:AnyKeypr qabstractitemview setEditTriggers qlistwidget      更新时间:2023-10-16

我正在阅读的书中:

默认情况下,qlistwidget仅读取。如果我们希望用户编辑 这些项目,我们可以使用 qabstractItemView :: setEditTriggers();例如,设置 qabtractiTemview :: AnyKeyPressed表示用户可以开始编辑 仅通过开始输入的项目。

所以,我在代码中调用该功能:

ui->listWidget->setEditTriggers(QAbstractItemView::AnyKeyPressed);

但是,当我选择一个项目并开始键入时,什么也不会发生。

事实证明,这些项目本身也有一个可编辑标志,因此添加它们后,我必须迭代所有这些标志并将其设置。现在正在工作。

// set the editable flag for each item
for (int ii = 0; ii < ui->listWidget->count(); ii++) {
    ui->listWidget->item(ii)->setFlags(ui->listWidget->item(ii)->flags() | Qt::ItemIsEditable);
}
// set the editable triggers for the list widget
ui->listWidget->setEditTriggers(QAbstractItemView::AnyKeyPressed);