2013-02-10 3 views
6

У меня есть QTableView в приложении PyQt, и я хочу отслеживать, когда изменяется выбор. Я пытался подключить сигнал в слот следующим образом (с помощью консультации по this page:Подключение QTableView selectionChanged сигнал создает segfault с PyQt

self.view.selectionModel().selectionChanged.connect(self.selChanged) 

, где слот он подключен к определяется как:

def selChanged(self, selected, deselected): 
     print "Sel changed" 

Тем не менее, всякий раз, когда я загрузить QMainWindow, на котором находится QTableView, я немедленно ошибку сегментации.

Могу ли я сделать что-то глупое здесь?

+0

В коде, который вы показываете, нет ничего очевидного. Возможно, проблема в другом месте? Можете ли вы опубликовать полный пример с этой проблемой? – Avaris

ответ

2

Это было исправлено в настоящее время, оказалось, что я использовал старую версию Qt на этой машине, которая, казалось, вызывала крах.

Мораль этой истории: если ваш код рушится по разумной причине, проверьте все ваши зависимости (в данном случае Qt и PyQt) на актуальном уровне.

4

У меня была аналогичная проблема, и исправление здесь: PySide: Segfault(?) when using QItemSelectionModel with QListView

А именно, заменить:

self.view.selectionModel().selectionChanged.connect(self.selChanged) 

с двумя командами:

selectionModel = self.view.selectionModel() 
selectionModel.selectionChanged.connect(self.selChanged) 

Не знаю, почему это работает, Откровенно.

Смежные вопросы