关于python:PyQt5转换来自PyQt4的信号代码

PyQt5 converting signal code from PyQt4

我是个新手,很难将一行代码从pyqt4改为pyqt5,这与信号和插槽有关。我怀疑这是因为争论正在被传递到槽中。

原始行是:

1
self.connect(self.assetView.selectionModel(), SIGNAL(("currentRowChanged(QModelIndex,QModelIndex)")),self.assetChanged)

我试过了:

1
self.assetView.selectionModel.currentRowChanged(QModelIndex,QModelIndex).connect(self.assetChanged)

我得到:AttributeError: 'builtin_function_or_method' object has no attribute 'currentRowChanged'

self.assetview是qtableview,self.assetched有def:

1
  def assetChanged(self, index):

感谢你的帮助


新语法如下:

1
sender.signal.connect(some_slot)

在您的情况下:

1
2
3
self.assetView.selectionModel().currentRowChanged.connect(self.assetChanged)

#   ^^^^^^^^^sender^^^^^^^^       ^^^^signal^^^^            ^^^^^^slot^^^^^^

1
2
def assetChanged(self, current, previous):
    print(current, previous)