从我正在阅读的书中
默认情况下,QListWidget是只读的。如果我们希望用户进行编辑 这些项目,我们可以使用设置视图的编辑触发器 QAbstractItemView中:: setEditTriggers();例如,设置为 QAbstractItemView :: AnyKeyPressed意味着用户可以开始编辑 只需开始输入一个项目。
所以,我在我的代码中调用该函数:
ui->listWidget->setEditTriggers(QAbstractItemView::AnyKeyPressed);
但是当我选择一个项目并开始输入时,没有任何反应。
答案 0 :(得分:7)
事实证明,项目本身也有一个可编辑的标志,因此在添加它们之后我必须迭代它们并设置它。现在它正在发挥作用。
// 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);