Название: [РЕШЕНО] Не могу получить сигнал sortIndicatorChanged
Отправлено: Sky от Август 05, 2010, 14:58
Что-то никак не разберусь, в чем косяк. В классе, наследнике QTableView для horizontalHeader() отключаю сортировку, но включаю индикацию сортировки. Визуально все нормально, значок сортировки есть и переключается, но не посылается сопутствующий сигнал. Ниже кусок кода на питоне. Я понимаю, что здесь в основном сишники, но думаю код будет понятен, хотя бы в той части, где "настраивается" сортировка. class DbAbstractView(QTableView): def __init__(self, parent = None): QTableView.__init__(self, parent) self.setSelectionMode(QAbstractItemView.SingleSelection) self.setSelectionBehavior(QAbstractItemView.SelectRows) self.setSortingEnabled(False) self.horizontalHeader().setSortIndicatorShown(True) self.horizontalHeader().setClickable(True) self.horizontalHeader().setSortIndicator(0, Qt.AscendingOrder) self.connect(self.verticalScrollBar(), SIGNAL('valueChanged(int)'), self.viewportChanged) self.horizontalHeader().connect(hh, SIGNAL('sortIndicatorChanged(int, int)'), self.sortChanged) def resizeEvent(self, event): self.viewportChanged()
def viewportChanged(self): lastRow = self.rowAt(self.viewport().height()) if lastRow == -1: lastRow = self.model().rowCount() self.model().viewportChanged(self.verticalScrollBar().value(), lastRow + 1) def sortChanged(self, col, order): print 'sort chaged'
Название: Re: Не могу получить сигнал sortIndicatorChanged
Отправлено: Sky от Август 05, 2010, 15:23
Извиняюсь, я протупил. :) вместо "sortIndicatorChanged(int,int)" надо было "sortIndicatorChanged(int,Qt::SortOrder)".
|