Форум сайта python.su
Метода, выделяяющего стразу несколько строк по их индексам я не нашёл, поэтому сделал цикл выделения по одной строке. Проблема в том, что выделяется последний итем, хотя стоит мультивыделение на лист виджет ((
self.list_z = QListWidget() self.list_z.addItems(некий список) self.list_z.setSelectionMode(2) # мультивыделение lst_select_index = [2,5,7] for i in range(len(lst_select_index)): self.list_z.setCurrentRow(lst_select_index[i]) # выделить строку по индексу
Офлайн
патамушта setSelectionMode() указывает может ли пользователь выбирать один или несколько элементов, и, если пользователь может выбирать несколько, должен ли это быть непрерывный диапазон.
вы же делаете это программно, тут нужно указывать в setCurrentRow() еще и SelectionModel.
вы опять не читаете документацию? http://doc.crossplatform.ru/qt/4.7.x/qlistwidget-members.html
да и ваш код:
lst_select_index = [2,5,7] for i in range(len(lst_select_index)): self.list_z.setCurrentRow(lst_select_index[i])
#-*-coding:utf8-*- from PyQt4.Qt import * from PyQt4.QtGui import * import sys app = QApplication(sys.argv) l = QListWidget() l.setSelectionMode(2) for i in range(10): l.addItem('row{}'.format(i)) l.show() lst_select_index = [2,5,7] for i in lst_select_index: l.setCurrentRow(i, QItemSelectionModel.Select) print(l.selectedItems()) app.exec_()
[code python][/code]
Отредактировано PEHDOM (Дек. 20, 2017 10:32:06)
Офлайн
PEHDOMСогласен.
попахивает мазохизмом
PEHDOMУже читаю, там-то я и нашёл метод setCurrentRow, но почему не попробовал поставить второй аргумент - не знаю…
вы опять не читаете документацию?
Офлайн