QListWidget :: setEditTriggers(QAbstractItemView :: AnyKeyPressed)不起作用

时间:2012-10-27 06:26:34

标签: c++ qt qlistwidget

从我正在阅读的书中

  

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

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

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

但是当我选择一个项目并开始输入时,没有任何反应。

1 个答案:

答案 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);