код создает QTableView
и QPushButton
. Нажатие кнопки выбирает индексы в непрерывном порядке (от index1
до index2
. Это еще unswered вопрос, если можно было бы выбрать индексы в любом порядке.

def clicked():
tableView.setFocus()
selectionModel = tableView.selectionModel()
index1 = tableView.model().index(0, 0)
index2 = tableView.model().index(1, 2)
itemSelection = QtGui.QItemSelection(index1, index2)
selectionModel.select(itemSelection, QtGui.QItemSelectionModel.Rows | QtGui.QItemSelectionModel.Select)
app = QtGui.QApplication([])
window = QtGui.QWidget()
window.resize(400, 300)
tableView = QtGui.QTableView()
model = QtGui.QStandardItemModel(4, 2)
for row in range(0, 4):
for column in range(0, 3):
item = QtGui.QStandardItem("%s , %s"%(row, column))
model.setItem(row, column, item)
tableView.setModel(model)
selectionModel = QtGui.QItemSelectionModel(model)
tableView.setSelectionModel(selectionModel)
button = QtGui.QPushButton('Select from 0,0 to 1,2')
button.clicked.connect(clicked)
layout = QtGui.QVBoxLayout()
layout.addWidget(tableView)
layout.addWidget(button)
window.setLayout(layout)
window.show()
app.exec_()
Благодаря в режиме выбора установлен в 'MultiSelection' какой со mmand нужно использовать для выбора строки 0 и строки 2, чтобы обе строки были выбраны одинаково? – alphanumeric
Это зависит от того, как вы реализуете. Пользователь будет в состоянии выбрать оба одновременно. Попробуйте tableView-> setSelectionBehavior (QAbstractItemView :: SelectItems); –
Еще раз спасибо! Я хотел бы знать, как выбрать несколько элементов в QTableView изнутри функции (кода) (а не из взаимодействия пользователя). Извините за то, что я не понимаю. – alphanumeric