我在一个PyQt应用程序中有一个QTableView,我想跟踪选择变化的时间。我试着将信号连接到一个槽上,如下所示(使用了在 本页:
self.view.selectionModel().selectionChanged.connect(self.selChanged)
其中它所连接的槽被定义为。
def selChanged(self, selected, deselected):
print "Sel changed"
然而,每当我加载QTableView所在的QMainWindow时,我立即得到一个分割故障。
我是不是在这里做了什么傻事?
我有一个类似的问题,修复方法在这里。PySide: 在QListView中使用QItemSelectionModel时出现Segfault(?)
即用两个命令替换。
self.view.selectionModel().selectionChanged.connect(self.selChanged)
用两个命令代替
selectionModel = self.view.selectionModel()
selectionModel.selectionChanged.connect(self.selChanged)
坦白说,我不知道为什么会这样。
现在这个问题已经解决了,原来我在那台机器上使用的是旧版本的Qt--这似乎是导致崩溃的原因。
这个故事的寓意是:如果你的代码无缘无故地崩溃,请检查你所有的依赖关系(这里是指Qt和PyQt)是否是最新的。