使用PyQt连接QTableView的selectionChanged信号会导致段错误

8

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

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

连接到的插槽被定义为:

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

然而,每当我加载包含QTableView的QMainWindow时,就会立即出现分段错误。

我在这里做了什么愚蠢的事情吗?


你展示的代码中似乎没有明显的错误。也许问题出在其他地方?你能否提供一个包含问题的完整示例? - Avaris
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)

说实话,我不确定这个为什么有效。


2

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

故事的寓意是:如果你的代码因为没有明显的原因而崩溃,请检查所有依赖项(在这种情况下为Qt和PyQt)是否是最新的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接