PDA

View Full Version : QTableView: How to select some self-defined items when clicked?



pdeagle
4th January 2014, 02:15
Hello, All:
I want to select half row when I clicked some item. I rewrite the selectionChanged() function. It can work at the first click. However, when clicked second time, the original selected items cannot be removed. Why? Thanks:)


void CMyWidgetTable::selectionChanged(const QItemSelection & selected, const QItemSelection & deselected){
QModelIndexList vd = selected.indexes();
if(vd.size() == 1){
QModelIndex current = vd.back();
QItemSelection dSel;
if(current.column() < 7){
dSel.select(m_pdModel->index(current.row(), 0), m_pdModel->index(current.row(), 6));
}
else if(current.column() >= 7){
dSel.select(m_pdModel->index(current.row(), 7), m_pdModel->index(current.row(), 13));
}

QItemSelectionModel *pdSelectionModel = selectionModel();
pdSelectionModel->select(dSel, QItemSelectionModel::SelectCurrent);
}
}