2013-02-10 66 views
6

我有一个PyQt应用程序中的QTableView,我想跟踪选择何时改变。我已经尝试了信号连接到如下的槽(使用建议上this page连接QTableView selectionChanged信号与PyQt产生段错误

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

在其连接所述槽至定义为:

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

但是,每当我加载在其上QTableView中驻留的QMainWindow,立刻得到分段错误。

我是不是傻了吗?

+0

您显示的代码中没有任何明显的错误。也许这个问题在别的地方?你能举一个完整的例子来解决这个问题吗? – Avaris 2013-02-10 23:36:43

回答

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) 

不知道为什么这个工程,坦率地说。