2017-09-15 5 views
0

Ich bin ein Neuling und habe Schwierigkeiten beim Ändern einer Zeile von Code von PyQT4 zu PyQT5, es mit Signalen & Slots zu tun. Ich vermute es, weil Argumente an den Slot übergeben werden.PyQt5 Konvertierung Signalcode von PyQt4

Original-Linie war:

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

Ich habe versucht:

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

und ich bekomme: AttributeError: 'builtin_function_or_method' object has no attribute 'currentRowChanged'

self.assetView ein QTableView und self.assetChanged hat def:

def assetChanged(self, index): 

Dankbar für jede Hilfe

Antwort

0

Die neue Syntax ist wie folgt:

sender.signal.connect(some_slot) 

In Ihrem Fall:

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

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

und

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