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时,我都会立即得到分段错误.
我在这做傻事吗?
我有一个类似的问题,修复程序在这里: 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)
坦率地说,不知道为什么会这样.
现在这个问题已经修复了,事实证明我在那台机器上使用了旧版本的 Qt - 这似乎导致了崩溃。
这个故事的寓意是:如果您的代码无缘无故崩溃,请检查所有依赖项(在本例中为 Qt 和 PyQt)是否是最新的。