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

rob*_*ntw 7 user-interface qt pyqt qtableview

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

self.view.selectionModel().selectionChanged.connect(self.selChanged)
Run Code Online (Sandbox Code Playgroud)

它所连接的插槽的位置定义为:

def selChanged(self, selected, deselected):
        print "Sel changed"
Run Code Online (Sandbox Code Playgroud)

但是,每当我加载QTableView所在的QMainWindow时,我都会立即得到分段错误.

我在这做傻事吗?

eri*_*ric 7

我有一个类似的问题,修复程序在这里: PySide:Segfault(?)使用QItemSelectionModel与QListView

即,替换:

self.view.selectionModel().selectionChanged.connect(self.selChanged)
Run Code Online (Sandbox Code Playgroud)

有两个命令:

selectionModel = self.view.selectionModel()
selectionModel.selectionChanged.connect(self.selChanged)
Run Code Online (Sandbox Code Playgroud)

坦率地说,不知道为什么会这样.


rob*_*ntw 2

现在这个问题已经修复了,事实证明我在那台机器上使用了旧版本的 Qt - 这似乎导致了崩溃。

这个故事的寓意是:如果您的代码无缘无故崩溃,请检查所有依赖项(在本例中为 Qt 和 PyQt)是否是最新的。