Найти - Пользователи
Полная версия: PyQt4. Не могу поймать сигнал от QtGui.QItemSelectionModel
Начало » GUI » PyQt4. Не могу поймать сигнал от QtGui.QItemSelectionModel
1
aaleksander
Доброго времени суток, уважаемые.
Пишу небольшую программу с использованием firebird + SQLAlchemy и PyQt4.
Никак не могу понять, какой сигнал нужно прописать в коннект, чтобы отловить перемещение по таблице.
Пробую делать так:
class WellTable(QtGui.QTableView):
def __init__(self, db):
QtGui.QTableView.__init__(self)
self.model = db.models.WellAbstract(self)
self.setModel(self.model)
self.verticalHeader().hide()
self.setAlternatingRowColors(True)
hh = self.horizontalHeader()
hh.setStretchLastSection(True)
self.resizeColumnsToContents()
self.setSelectionBehavior( QtGui.QAbstractItemView.SelectRows )

self.selectionModel1 = QtGui.QItemSelectionModel(self.model, self)
self.connect(self.selectionModel1, QtCore.SIGNAL('selectionChanged(const QItemSelection &, const QItemSelection &)'), self.test)

def test(self, a, b):
print 'test'
Перемещаюсь по таблице, а в консоли ничего не печатается.
Что я делаю неправильно?

И еще вопрос: где можно посмотреть питоновские исходники PyQt4. А то у меня только sip-файлы.

Спасибо.
dartNNN
aaleksander
self.connect(self.selectionModel1, QtCore.SIGNAL('selectionChanged(const QItemSelection &, const QItemSelection &)'), self.test)
Это старый стиль нынче модно писать так:
self.selectionModel1.selectionChanged.connect(self.test)
И самое важное: QTableView и QItemSelectionModel надо связывать через QTableView.setSelectionModel (self, QItemSelectionModel selectionModel). Тады все должно заработать.

А что вы понимаете под
aaleksander
питоновские исходники PyQt4
?
PyQt4 - это привязка сишных библиотек Qt к питону. Какие питоновские исходники тут должны быть?
aaleksander
Спасибо, заработало.

dartNNN
PyQt4 - это привязка сишных библиотек Qt к питону. Какие питоновские исходники тут должны быть?
Да вот чтоб хотя бы посмотреть сигнатуру сигнала. Или методы посмотреть. У меня NetBeans как-то криво классы показывает. О наличии метода selectionChanged можно только догадываться. А так, глянул в класс и все понятно.
dartNNN
aaleksander
О наличии метода selectionChanged можно только догадываться
Ну в этом случае можно глянуть доки ни родительский класс:)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB