Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cортировка и идексы
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Модель/Представление
XanderEVG
Пробую написать простенькую программу. таблицу на базе QStandardItemModel и QTableView. хочу сделать по щелчку по ячейке чтение всей строки из этой ячейке.
пишу кстати на питоне и pyQt. особо не различается я думаю..
собсна код:
//main
    model = Model(self)                                   //class Model(QtGui.QStandardItemModel)
    table = QtGui.QTableView(self)                   // тут понятно
    table.setModel(self.model)                          // и тут

self.connect(self.table, QtCore.SIGNAL("doubleClicked(QModelIndex)"), self.model.rowClicked)




извиняюсь, не дописал тему, нажал случайно на мультимедийную клавишу или еще какую то и тема запостилась почему то... если можно как то удалить? мне нужно еще коечто проверить и тогда заново создам если не решится

жесть аж в 3х экземплярах тема создалась!!!
XanderEVG
//model.rowClicked()
print(self.item(index.row(), 0))  //вывести в консоль ячейку 1 столбика той строки на которую мы нажали

так вот: пока я не использовал QSortFilterProxyModel все работало идеально.
как только я вставлял self.proxyModel = MyProxyModel(self.model) и self.table.setModel(self.proxyModel) то после сортировки этот код выводил не правильно. так как будто не сортировал.
то есть индексы в QSortFilterProxyModel и в QStandardItemModel не совпадали. И в model.rowClicked() я применял индексы которые не валидны для model.

решается просто - чтением документации)))
что бы получить корректный индекс для QStandardItemModel нужно в proxy выполнить метод indexForModel = self.mapToSource(index)
тему можно удалить или оставить, если кому вдруг пригодится.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.