我是新手,我很难将一行代码从PyQT4更改为PyQT5,这与信号和放大器有关。插槽。我怀疑它是因为参数被传递到插槽。
原作是:
self.connect(self.assetView.selectionModel(), SIGNAL(("currentRowChanged(QModelIndex,QModelIndex)")),self.assetChanged)
我试过了:
self.assetView.selectionModel.currentRowChanged(QModelIndex,QModelIndex).connect(self.assetChanged)
我得到:AttributeError: 'builtin_function_or_method' object has no attribute 'currentRowChanged'
self.assetView是一个QTableView,self.assetChanged有一个def:
def assetChanged(self, index):
感谢任何帮助
答案 0 :(得分:0)
新语法如下:
sender.signal.connect(some_slot)
在你的情况下:
self.assetView.selectionModel().currentRowChanged.connect(self.assetChanged)
# ^^^^^^^^^sender^^^^^^^^ ^^^^signal^^^^ ^^^^^^slot^^^^^^
和
def assetChanged(self, current, previous):
print(current, previous)