如何检查QTreeView中是否正在编辑任何项目?

时间:2014-05-17 16:50:50

标签: c++ qt qtreeview

我已经将QTreeView子类化,并在按下某些键时覆盖keyPresseEvent()来执行操作。当然,我不想在编辑项目时这样做。如何检查编辑是否正在进行?

2 个答案:

答案 0 :(得分:2)

您可以使用这些功能。如果调用edit但尚未调用closeEditoreditorDestroyed,则表示处于编辑模式。

bool QAbstractItemView::edit ( const QModelIndex & index, EditTrigger trigger, QEvent * event ) [virtual protected]    
void QAbstractItemView::closeEditor ( QWidget * editor, QAbstractItemDelegate::EndEditHint hint ) [virtual protected slot]
void QAbstractItemView::editorDestroyed ( QObject * editor )   [virtual protected slot]

答案 1 :(得分:1)

您可以检查视图的内部状态以查看它是否处于编辑状态

if (my_treeview->state() != QAbstractItemView::EditingState)
{
   /* do some stuff */
}