6

从我正在阅读的书中:

默认情况下,QListWidget 是只读的。如果我们希望用户编辑项目,我们可以使用 QAbstractItemView::setEditTriggers(); 设置视图的编辑触发器;例如,设置 QAbstractItemView::AnyKeyPressed 意味着用户只需开始键入即可开始编辑项目。

所以,我在我的代码中调用该函数:

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

但是当我选择一个项目并开始输入时,什么也没有发生。

4

1 回答 1

8

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

// 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);
于 2012-10-28T11:53:12.720 回答