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) 不工作的主要内容,如果未能解决你的问题,请参考以下文章