Nochmals danke für die Hilfe vorhin, aber ich steh nochmal auf dem Schlauch.
Und zwar möchte ich mit selectedItems() aus einem tableWidget die markierten Zellen auslesen. Leider kommt das Ergebnis nur in Maschinensprache. Was muss ich tun, damit die Werte wirklich lesbar sind?
Vielen Dank schonmal.
tableWidet - selectedItems - Wert auslesen
- __blackjack__
- User
- Beiträge: 14042
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Cortez: Was meinst Du mit ”Maschinensprache”? Die Methode liefert eine Liste mit `QTableWidgetItem`-Objekten. Von denen kann man alles mögliche abfragen und auch setzen.
Edit: Ist das auch das richtige? Also Du hast tatsächlich ”2D-Daten” wo jede Zelle ein eigenes Datum ist das nichts/nicht viel mit seinen Nachbarzellen, sowohl horizontal als auch vertikal, zu tun hat?
Edit: Ist das auch das richtige? Also Du hast tatsächlich ”2D-Daten” wo jede Zelle ein eigenes Datum ist das nichts/nicht viel mit seinen Nachbarzellen, sowohl horizontal als auch vertikal, zu tun hat?
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Also ich hab folgenden Code:__blackjack__ hat geschrieben: Freitag 19. April 2019, 20:24 @Cortez: Was meinst Du mit ”Maschinensprache”? Die Methode liefert eine Liste mit `QTableWidgetItem`-Objekten. Von denen kann man alles mögliche abfragen und auch setzen.
Edit: Ist das auch das richtige? Also Du hast tatsächlich ”2D-Daten” wo jede Zelle ein eigenes Datum ist das nichts/nicht viel mit seinen Nachbarzellen, sowohl horizontal als auch vertikal, zu tun hat?
Und erhalte Ausgabe dieser Art: PyQt5.QtWidgets.QTableWidgetItem object at 0x78558698items = hauptfenster.tableWidget.selectedItems()
print (items)
Also ich kann Werte setzen mit setItem. Das klappt auch. Sowohl in verschiedene Reihen, als auch Spalten, falls du das meinst.
- __blackjack__
- User
- Beiträge: 14042
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Cortez: Naja, da sind noch eckige Klammern drum herum, denn das ist ja wie gesagt eine *Liste* mit allen selektierten Elementen. Und ”spitze Klammern” welche die einzelnen Repräsentationen der Objekte in der Liste einfassen, wie das so Konvention für diese Art der Darstellung ist, und wenn mehr als ein Objekt in der Liste steckt, dann auch noch Kommas zwischen den Werten/deren `repr()`-Darstellung.
Die Objekte in der Liste kannst Du Dir jetzt halt näher anschauen. Ist ja nicht so als wenn nicht dokumentiert wäre was so ein `QTableWidgetItem` an Methoden hat. Und ich meinte nicht das setzen eines ganzen Items, sondern die Daten und Eigenschaften auf dem jeweiligen Item.
Wenn Du die Items mit `setItem()` setzt, dann kennst Du die `QTableWidgetItem`-Klasse doch bereits und hattest so ein Objekt auch vorher schon mal in den Fingern, da ja selbst erstellt.
Die Objekte in der Liste kannst Du Dir jetzt halt näher anschauen. Ist ja nicht so als wenn nicht dokumentiert wäre was so ein `QTableWidgetItem` an Methoden hat. Und ich meinte nicht das setzen eines ganzen Items, sondern die Daten und Eigenschaften auf dem jeweiligen Item.
Wenn Du die Items mit `setItem()` setzt, dann kennst Du die `QTableWidgetItem`-Klasse doch bereits und hattest so ein Objekt auch vorher schon mal in den Fingern, da ja selbst erstellt.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Ist mir schon klar, dass das Objekte sind. Aber man kann doch auch Objekte in einer Liste anzeigen lassen. Ich möchte doch nur erreichen, dass, wenn in Zelle(1,0) jetzt "Osterhase" steht, dass ich mir das Wort Osterhase dann in der Kommandozeile ausprinten lassen kann.__blackjack__ hat geschrieben: Freitag 19. April 2019, 21:18 @Cortez: Naja, da sind noch eckige Klammern drum herum, denn das ist ja wie gesagt eine *Liste* mit allen selektierten Elementen. Und ”spitze Klammern” welche die einzelnen Repräsentationen der Objekte in der Liste einfassen, wie das so Konvention für diese Art der Darstellung ist, und wenn mehr als ein Objekt in der Liste steckt, dann auch noch Kommas zwischen den Werten/deren `repr()`-Darstellung.
Die Objekte in der Liste kannst Du Dir jetzt halt näher anschauen. Ist ja nicht so als wenn nicht dokumentiert wäre was so ein `QTableWidgetItem` an Methoden hat. Und ich meinte nicht das setzen eines ganzen Items, sondern die Daten und Eigenschaften auf dem jeweiligen Item.
Wenn Du die Items mit `setItem()` setzt, dann kennst Du die `QTableWidgetItem`-Klasse doch bereits und hattest so ein Objekt auch vorher schon mal in den Fingern, da ja selbst erstellt.
- __blackjack__
- User
- Beiträge: 14042
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Cortez: Na dann musst Du von den Objekten in der Liste halt den Text abfragen.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
__blackjack__ hat geschrieben: Freitag 19. April 2019, 21:56 @Cortez: Na dann musst Du von den Objekten in der Liste halt den Text abfragen.
Code: Alles auswählen
print (hauptfenster.tableWidget.selectedItems().text)
@Cortez: ich verstehe nicht, wie man drei Stunden erfolglos Suchen muß, wenn hier schon auf die richtige Stelle in der Dokumentation verwiesen wurde?
Hier (https://doc.qt.io/qt-5/qtablewidget.html#selectedItems) steht, dass selectedItems eine Liste von QTableWidgetItem zurückliefert und wie man mit Liste umgeht, gehört zu den absoluten Grundlagen von Python.
Da Du aber nur per Copy-Paste programmieren willst, liefert auch eine Google-Suche innerhalb von 3 Sekunden ein Ergebnis: https://pythonspot.com/pyqt5-table/
Hier (https://doc.qt.io/qt-5/qtablewidget.html#selectedItems) steht, dass selectedItems eine Liste von QTableWidgetItem zurückliefert und wie man mit Liste umgeht, gehört zu den absoluten Grundlagen von Python.
Da Du aber nur per Copy-Paste programmieren willst, liefert auch eine Google-Suche innerhalb von 3 Sekunden ein Ergebnis: https://pythonspot.com/pyqt5-table/