tableView
にフィルタリングとソート方法を追加しようとしています。そのためには、QSortFilterProxyModel
を使用する必要があります。私の問題は、魔法使いの最初のモデルでは、QSortFilterProxyModel
を使用すると、テーブルのすべてのセルがエディタのmodですでに開いている必要があるということです。 QStandardItemModel
をQSortFilterProxyModel
に追加した後、セルは編集可能モードにはまだありません。openPersistentEditorの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));
}
細胞は、私はセルをダブルクリックした場合にのみ表示されます。つまり、tableView
のopenPersistestentEditor
メソッドが正しく機能していないことを意味します。
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));
}