8

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

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

它所连接的插槽定义为:

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

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

我在这里做傻事吗?

4

2 回答 2

9

我遇到了类似的问题,解决方法在这里: PySide: Segfault(?) when using QItemSelectionModel with QListView

即,替换:

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

有两个命令:

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

坦率地说,不确定为什么会这样。

于 2014-11-01T12:42:04.497 回答
2

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

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

于 2013-02-11T21:03:00.633 回答