У меня есть таблица, где я позволил ExtendedSelection:Как выбрать несколько строк в QTableWidget?
table.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)
Когда я закрываю интерфейс я использую QSettings помнить любые выбранные строки. Когда я снова открываю свой пользовательский интерфейс, я хочу, чтобы он автоматически автоматически перебирал строки.
у меня есть, но это заканчивается только выбрать последний выбранный ряд:
QSETTINGS = [1, 2, 3] # Indicates row 1, 2 and 3 should be selected
for row in xrange(table.rowCount()):
table_item = table.item(row, 1)
row_data = table_item.data(QtCore.Qt.UserRole)
row_id = row_data
if row_id in QSETTINGS:
table.selectRow(row) # This ends up only making one row selected
Что я должен использовать вместо table.selectRow(row)
для того, чтобы убедиться, что выбрать не только одну строку?
Редактировать
В моей оригинальный вопрос, я сказал, что с помощью QtGui.QAbstractItemView.MultiSelection
. Однако я не. Я использую QtGui.QAbstractItemView.ExtendedSelection
, и поэтому код выбора строки явно не работает. Временно переключаясь на MultiSelection
, выбирая строки, а затем переключайтесь обратно на ExtendedSelection
, код в моем вопросе отлично работает.
В качестве побочного примечания, если вы выберете все строки, это будет простой способ сделать инвертированный выбор. Спасибо за ответ! –