QTableView spanned cells selection
Unsolved
General and Desktop
-
Hi guys,
let's me see small example
#include <QApplication> #include <QTableView> #include <QLayout> #include <QStandardItemModel> #include <QHeaderView> int main (int argc, char **argv) { QApplication app (argc, argv); QWidget *window = new QWidget(); QTableView *view = new QTableView(); QStandardItemModel *model = new QStandardItemModel (4, 3, window); model->setData(model->index(0, 0), QVariant("A")); model->setData(model->index(1, 0), QVariant("B")); model->setData(model->index(2, 0), QVariant("C")); model->setData(model->index(3, 0), QVariant("D")); model->setData(model->index(0, 1), QVariant("a")); model->setData(model->index(1, 1), QVariant("b")); model->setData(model->index(2, 1), QVariant("c")); model->setData(model->index(3, 1), QVariant("d")); model->setData(model->index(0, 2), QVariant("1")); model->setData(model->index(1, 2), QVariant("1")); model->setData(model->index(2, 2), QVariant("3")); model->setData(model->index(3, 2), QVariant("4")); view->setSelectionBehavior(QAbstractItemView::SelectRows); view->setSelectionMode(QAbstractItemView::ExtendedSelection); view->setSpan(0, 2, 2, 1); view->setModel(model); QVBoxLayout *vblTop = new QVBoxLayout(); vblTop->setMargin(5); vblTop->setSpacing(10); vblTop->setAlignment(Qt::AlignTop); vblTop->addWidget(view); window->setLayout(vblTop); window->show(); return app.exec(); }
Please help me.
I need when the user clicked on spanned cell then select ALL corresponding rows(cells).-
If user clicked: A, a, 1, B, b (1 and 2 rows) make selection rows 1 and 2
-
If user clicked C, c, 3 then select only 3 row, and if user clicked D, d, 4 then select only 4 row.
- Subclass QTableView? And handle selectedIndexes, selectionChanged, currentChanged?
- Change selection mode and behaviour?
Thanks a lot,
Alex. -
-
Hi,
A custom QItemSelectionModel would likely be the way to go.
-
@SGaist seems to me that is complex way. I think there would be more simple. :-(
I'm not found any references on how to subclass QItemSelectionModel.
That is strange, I think that is very popular feature of QTableView widget. :-( -
From your description, it seems you need to reimplement the select method.
-
You're welcome !
Well, yours could become one :-)