PyQt5转换来自PyQt4的信号代码

时间:2017-09-15 00:16:41

标签: python pyqt pyqt4 pyqt5

我是新手,我很难将一行代码从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):

感谢任何帮助

1 个答案:

答案 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)