有没有办法确定QTableView当前单元格中是否有一个打开的编辑器?我需要处理以下情况:
我看到如何获取当前项目,并可以获得该项目的委托,但我没有看到任何isEditMode()我希望找到的属性.
有人能指出我正确的方向吗?
只需检查是否返回值
State QAbstractItemView::state () const
Run Code Online (Sandbox Code Playgroud)
是
QTableView::EditingState
Run Code Online (Sandbox Code Playgroud)
对您的委托进行子类化,使其包含一个访问器来告诉您何时进行编辑:
void MyDelegate::setEditorData ( QWidget * editor, const QModelIndex & index ) const {
// _isEditing will have to be mutable because this method is const
_isEditing = true;
QStyledItemDelegate::setEditorData(editor, index);
}
void MyDelegate::setModelData ( QWidget * editor, QAbstractItemModel * model, const QModelIndex & index ) const {
QStyledItemDelegate::setModelData(editor, model, index);
_isEditing = false;
}
bool MyDelegate::isEditing() const { return _isEditing; }
Run Code Online (Sandbox Code Playgroud)
然后你可以检查代表看看发生了什么。或者和/或如果您不喜欢mutable,您可以发出信号,以便您知道委托处于什么状态。
| 归档时间: |
|
| 查看次数: |
3875 次 |
| 最近记录: |