连接QTableView selectionChanged信号会产生与PyQt的段错误

时间:2013-02-10 22:26:10

标签: qt user-interface pyqt qtableview

我在PyQt应用程序中有一个QTableView,我想跟踪选择何时更改。我已尝试将信号连接到插槽,如下所示(使用this page上的建议:

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

它连接的插槽定义为:

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

但是,每当我加载QTableView所在的QMainWindow时,我就会立即出现分段错误。

我在这里做些蠢事吗?

2 个答案:

答案 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)是否是最新的。