2016-11-10 4 views
0

Ich muss eine Methode für eine Reihe von Argumenten mit PyQt5 QTableWidget, insbesondere PyQt5.QTableWidget.setItem aufrufen.Python: Map mit Klassenmethode, die Argumente benötigt

ich diese Liste von Strings haben,

row = ["a","b","c","d"] 

und ich brauche jedes Element in einer Spalte der Tabelle zu setzen, mit Ausnahme des ersten. Was ich versucht habe, ist

Ich versuchte auch mit Karte und keine Zip der Argumente, aber nichts scheint zu funktionieren. Ich weiß, ich könnte eine for Schleife auf die Argumente machen, aber ich wollte die "elegantere" Kartenlösung.

Das Hauptproblem ist, dass keine Informationen in der Tabelle angezeigt werden, obwohl es keine Fehlerberichte, Warnungen oder ähnliches gibt.

Danke!

+0

„nichts scheint zu funktionieren“ Haben Sie einen Fehler? Enthält die Tabelle keine Einträge? Was ist das genaue Problem? –

+0

Die Tabelle enthält keine Einträge, obwohl kein Fehler gemeldet wird. Ich füge das zur Frage hinzu. – oxio

Antwort

1

Eine Schleife ist eleganter, wenn auch nicht so knapp, IMHO.

Wenn Sie einen Generator erstellen (wie bei einer Sternenkarte), müssen Sie ihn verwenden, um Code auszuführen. Zum Beispiel, übergeben Sie es an list().

+0

Danke! Es hat funktioniert, obwohl ich 7 Minuten warten muss, um die Antwort zu akzeptieren. Jetzt muss ich das Problem beheben, dass die Zeilen verschoben sind, aber das ist nicht der Punkt der Antwort, vielen Dank! – oxio

0

nur für das Heck von ihm, hier ist der vernünftige Weg, um diesen Code zu schreiben:

for column, text in enumerate(row[1:], 1): 
    tableWidget.setItem(rowNumber + 1, column, QTableWidgetItem(text)) 
Verwandte Themen