Вы можете получить индекс чего угодно, просто позвонив
QModelIndex indexOfTheCellIWant = model->index(row, column, parentIndex);
Затем вы можете позвонить setCurrentIndex(indexOfTheCellIWant)
, как сказал Бруно в своем ответе.
Если модель содержит только стандартный списокэлементы в отличие от древовидной структуры, то это еще проще.Поскольку мы можем предположить, что элемент является корневым элементом, а не родителем.
QModelIndex indexOfTheCellIWant = model->index(row, column);
С древовидной структурой это немного сложнее, потому что мы не можем просто указать строку и столбец, нам нужноуказать их по отношению к родителю.Если вам нужно узнать об этой части, дайте мне знать, и я объясню больше.
Еще одна вещь, которую стоит отметить.Выбор основан на ячейках, а не на строках.Поэтому, если вы хотите убедиться, что когда пользователь выбирает ячейку (или вы делаете через код), что выделена вся строка, вы можете сделать это, установив «selectionBehavior» на себя.
list->setSelectionBehavior(QAbstractItemView::SelectRows);