2017-09-15 1 views
0

Je suis un débutant et j'ai de la difficulté à changer une ligne de code de PyQT4 à PyQT5, son à faire avec les signaux & slots. Je soupçonne que c'est parce que les arguments sont passés à la fente.PyQt5 convertir le code de signal de PyQt4

ligne originale était:

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

J'ai essayé:

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

et je reçois: AttributeError: 'builtin_function_or_method' object has no attribute 'currentRowChanged'

self.assetView est un QTableView et self.assetChanged a def:

def assetChanged(self, index): 

reconnaissant pour toute aide

Répondre

0

La nouvelle syntaxe est la suivante:

sender.signal.connect(some_slot) 

Dans votre cas:

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

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

et

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