gpt4 book ai didi

c++ - openPersistentEditor 中的 QSortFilterProxyModel

转载 作者:行者123 更新时间:2023-11-30 05:23:44 26 4
gpt4 key购买 nike

我正在尝试向 tableView 添加过滤和排序方法,为此我需要使用 QSortFilterProxyModel。我的问题是,我使用 QSortFilterProxyModel 的初始模型需要表格的所有单元格都已在编辑器模式中打开。在我将 QStandardItemModel 添加到 QSortFilterProxyModel 之后,单元格尚未处于可编辑模式。

这按预期工作:

QStandardItemModel *model = new QStandardItemModel(0, 5, this); //reimplemented class
QItemDelegate *mydelegate = new QItemDelegate(this); //reimplemented class

ui -> tableView -> setModel(model);
ui -> tableView -> setItemDelegate (mydelegate);

for(size_t i=0; i<m_BoardingsVector.size(); i++) //a structure from a function that adds rows dynamically
{
model -> insertRows(model -> rowCount(),1);
for(int j=0; j<5; ++j)
ui -> tableView -> openPersistentEditor(model -> index(model -> rowCount() - 1, j));
}

仅当我双击单元格时才会显示单元格。这意味着 tableViewopenPersistestentEditor 方法无法正常工作。

QStandardItemModel *model = new QStandardItemModel(0, 5, this); //reimplemented class
QItemDelegate *mydelegate = new QItemDelegate(this); //reimplemented class

QSortFilterProxyModel * m_proxyModel = new QSortFilterProxyModel();
m_proxyModel -> setSourceModel(model);

ui -> tableView -> setModel( m_proxyModel);
ui -> tableView -> setItemDelegate (mydelegate);
ui -> tableView -> sortByColumn(0, Qt::AscendingOrder);
ui -> tableView -> setSortingEnabled(true);


for(size_t i=0; i<m_BoardingsVector.size(); i++) //a structure from a function that adds rows dynamically
{
model -> insertRows(model -> rowCount(),1);
for(int j=0; j<5; ++j)
ui -> tableView -> openPersistentEditor(model -> index(model -> rowCount() - 1, j));
}

最佳答案

我刚遇到这个问题,只是阅读你的问题和代码摘录让我意识到错误:

View (ui->tableView) 设置为使用一个模型 (m_proxyModel),但编辑器的索引来自不同的模型 ( >模型)。这可能对 View 没有任何意义。1

改变:

ui -> tableView -> openPersistentEditor(model -> index(model -> rowCount() - 1, j));

到:

ui -> tableView -> openPersistentEditor(m_proxyModel -> index(model -> rowCount() - 1, j));

应该解决你的问题,我相信。

对我来说,它造成了一个不同的问题,即编辑器没有显示在正确的单元格中,但这可能是我的 QAbstractProxyModel 的子类实现有问题(通常不推荐)。


<我>1 我瞥了一眼 source code对于QAbstractItemView,我还没有找到明确的限制,但这仍然是我能想到的最合理的解释。

关于c++ - openPersistentEditor 中的 QSortFilterProxyModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39034621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com