Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Разработка GUI > selectedIndexes - получение итема


Автор: billybob 4.5.2011, 10:58
Здравствуйте. 

Есть проблема в получении доступа к данным QTreeView выбранных элементов.
В QTreeView выделение происходит построчно, каждая строка содержит 4 поля.
В данный момент использую код
Код

    itm = []
    x = 0
    for index in self.ui.treExportProbes.selectedIndexes():
      i = self.ui.treExportProbes.model().data(index,QtCore.Qt.DisplayRole)
      itm.append(i)
      x = x + 1
      if x == 4:
        self.patLst.changeProbeStatus( itm[0].toString(), str(itm[2].toString()), itm[3].toString() )
        itm = []
        x = 0

Этот код прекрасно работает, при выделении одной строки. При выделении нескольких строк начинаются чудеса. 
Обход выделенного происходит не по горизонтали, как ожидалось, а в зависимости от количества выбранных элементов.
Для одной выделенной строки - всё Ок. Для 2-х он берёт 2 с 3 столбца, и 2 с 4, для 3-ч он берет 1 с 3 и 3 с 4, для 4 он берет все 4 с 4. 

Собственно вопрос:
1) Либо как преобразовать данный код, чтобы он проходил все поля из selectedIndexes() по горизонтали
2) Либо как получить QTreeView итем, чтобы не через модель обрабатывать, а через доступ к .text(номер_поля) итема

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)