关闭QAbstractItemView的编辑器

时间:2010-12-01 12:38:07

标签: c++ qt

我正在使用QAbstractItemView来操纵队列。问题是当用户点击发送按钮时,编辑器不会关闭并更新模型中的值。这会引起一些挫折。

我已经阅读了Qt文档,但我似乎无法找到关闭编辑器并提交更改的简单方法。我应该怎么做呢?

2 个答案:

答案 0 :(得分:1)

这是我用的

void ProjectExplorerView::CloseCurrentEditorIfOpen(bool commit)
{
   QWidget* w = indexWidget(currentIndex());
   if (w != nullptr)
   {
     if (commit) {
        commitData(w);
        closeEditor(w, QAbstractItemDelegate::SubmitModelCache);
     } else {
        closeEditor(w, QAbstractItemDelegate::RevertModelCache);
     }
   }
 }

答案 1 :(得分:0)

看起来您必须通过选择模型或ItemView信号或currentIndex()跟踪当前打开的项目,当您有QModelIndex当前打开的项目时,您应该能够关闭它使用closePersistentEditor ( const QModelIndex & index )