Russian Qt Forum
Ноябрь 24, 2024, 02:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Не могу получить сигнал sortIndicatorChanged  (Прочитано 3241 раз)
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'
« Последнее редактирование: Август 05, 2010, 15:23 от Sky » Записан
Sky
Гость
« Ответ #1 : Август 05, 2010, 15:23 »

Извиняюсь, я протупил. Улыбающийся
вместо "sortIndicatorChanged(int,int)" надо было "sortIndicatorChanged(int,Qt::SortOrder)".
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.042 секунд. Запросов: 20.