我在PyQt应用程序中有一个QTableView,我想跟踪选择何时更改。我已尝试将信号连接到插槽,如下所示(使用this page上的建议:
self.view.selectionModel().selectionChanged.connect(self.selChanged)
它连接的插槽定义为:
def selChanged(self, selected, deselected):
print "Sel changed"
但是,每当我加载QTableView所在的QMainWindow时,我就会立即出现分段错误。
我在这里做些蠢事吗?
答案 0 :(得分:6)
我遇到了类似的问题,修复程序在这里: PySide: Segfault(?) when using QItemSelectionModel with QListView
即,替换:
self.view.selectionModel().selectionChanged.connect(self.selChanged)
有两个命令:
selectionModel = self.view.selectionModel()
selectionModel.selectionChanged.connect(self.selChanged)
坦率地说,不确定为什么会这样。
答案 1 :(得分:2)
现在已经修复了,原来我在那台机器上使用了旧版本的Qt - 这似乎导致了崩溃。
故事的寓意是:如果您的代码因为没有明显原因而崩溃,请检查所有依赖项(在本例中为Qt和PyQt)是否是最新的。