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

How to check if any item is being edited in the QTreeView or not?

本文关键字:是否 任何 项目 编辑 QTreeView 何检查 检查      更新时间:2023-10-16

我已经子类化了QTreeView,并且在按下某些键时重写了keyPresseEvent()来做一些事情。当然,我不希望在编辑项目时这样做。如何检查编辑是否正在进行中?

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

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

您可以使用这些函数。如果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]