QListWidget::setEditTriggers(QAbstractItemView::AnyKeyPressed) 不工作

Posted

技术标签:

【中文标题】QListWidget::setEditTriggers(QAbstractItemView::AnyKeyPressed) 不工作【英文标题】:QListWidget::setEditTriggers(QAbstractItemView::AnyKeyPressed) not working 【发布时间】:2012-10-27 06:26:34 【问题描述】:

来自我正在阅读的书:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

// 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);

【讨论】:

以上是关于QListWidget::setEditTriggers(QAbstractItemView::AnyKeyPressed) 不工作的主要内容,如果未能解决你的问题,请参考以下文章