Я пытаюсь добавить фильтр и метод сортировки в tableView
, и для этого мне нужно использовать QSortFilterProxyModel
. Моя проблема в том, что исходная модель на witch, которую я использую QSortFilterProxyModel
, требует, чтобы все ячейки таблицы были открыты в редакторе mod. После того, как я добавлю QStandardItemModel
в QSortFilterProxyModel
, ячейки уже не доступны в режиме редактирования.QSortFilterProxyModel в openPersistentEditor
Это работает, как ожидалось:
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));
}
клетки отображаются, только если я дважды щелкните на клетках. Это означает, что метод openPersistestentEditor
tableView
работает неправильно.
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));
}