#include #include #include int main(int argc, char *argv[]) { QApplication a(argc, argv); QTableWidget tbl(5,5); QTableWidgetItem *tblItem = 0; // ordinary cell item const Qt::ItemFlags itemFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable ); for (int r = 0; r < 5; r++) { for (int c = 0; c < 5; c++) { tblItem = new QTableWidgetItem(); tbl.setItem(r, c, tblItem); if (c != r ) { tblItem->setFlags(itemFlags); } else { tblItem->setFlags(Qt::NoItemFlags); tblItem->setData(Qt::DisplayRole, "flag 0"); } } } tbl.setSelectionMode(QAbstractItemView::MultiSelection); tbl.resize(900, 600); tbl.show(); tbl.selectColumn(2); tbl.selectColumn(3); qDebug() << "Initial Selection"; qDebug() << " 2" << tbl.selectionModel()->isColumnSelected(2, QModelIndex()); qDebug() << " 3" << tbl.selectionModel()->isColumnSelected(3, QModelIndex()); tbl.selectRow(2); qDebug() << "Row 3 selected"; qDebug() << " 2" << tbl.selectionModel()->isColumnSelected(2, QModelIndex()); qDebug() << " 3" << tbl.selectionModel()->isColumnSelected(3, QModelIndex()); tbl.selectRow(3); qDebug() << "Row 3 selected"; qDebug() << " 2" << tbl.selectionModel()->isColumnSelected(2, QModelIndex()); qDebug() << " 3" << tbl.selectionModel()->isColumnSelected(3, QModelIndex()); return a.exec(); }