连接QTableView的selectChanged信号,产生PyQt的segfault。

问题描述 投票:0回答:1

我在一个PyQt应用程序中有一个QTableView,我想跟踪选择变化的时间。我试着将信号连接到一个槽上,如下所示(使用了在 本页:

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

其中它所连接的槽被定义为。

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

然而,每当我加载QTableView所在的QMainWindow时,我立即得到一个分割故障。

我是不是在这里做了什么傻事?

qt pyqt qtableview
1个回答
9
投票

我有一个类似的问题,修复方法在这里。PySide: 在QListView中使用QItemSelectionModel时出现Segfault(?)

即用两个命令替换。

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

用两个命令代替

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

坦白说,我不知道为什么会这样。


2
投票

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

这个故事的寓意是:如果你的代码无缘无故地崩溃,请检查你所有的依赖关系(这里是指Qt和PyQt)是否是最新的。

© www.soinside.com 2019 - 2024. All rights reserved.