2017-09-15 106 views
0

我是一個新手,並且難以將一行代碼從PyQT4更改爲PyQT5,它與信號&插槽有關。我懷疑它是因爲參數正在傳遞給插槽。PyQt5從PyQt4轉換信號代碼

原線爲:

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 assetChanged(self, index): 

感謝所有幫助

回答

0

新的語法如下:

sender.signal.connect(some_slot) 

你的情況:

self.assetView.selectionModel().currentRowChanged.connect(self.assetChanged) 

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

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