Text formatiert ausgeben und on_click

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
ThomasDD
User
Beiträge: 14
Registriert: Mittwoch 29. November 2017, 11:24

Mittwoch 13. Dezember 2017, 15:00

Hallo,

ich will aus einzelnen Feldern bestehenden Text formatiert ausgeben, entweder mit Leerzeichen/Tabs passend vorformatiert, oder gleich in einer Tabelle, also entweder in einer textbox oder mit QTableWidget.

Beispiel:

Feld1 Feld2 Feld3 Feld4

sowas in der Art.

Besonderheit:
- die Daten kommen ständig an und scollen durch
- es soll beim Click auf ein Feld eine bestimmte Aktion ausgelöst werden können, die als Argument wieder den Feldinhalt als Text braucht (noch lieber als Click alleine mit MouseOver)


Ich hab das mit einem QTableWidget gelöst, jede neu hereinkommende Zeile wird Feld für Feld hinten an die Tabelle mit

self.tableWidget.insertRow(self.tableWidget.rowCount())
self.tableWidget.setItem(self.tableWidget.rowCount()-1,meineSpalte,QTableWidgetItem("Text"))

angehängt.

Und die Aktion dann in einem Slot der zu self.tableWidget.doubleClicked connected ist.

Geht das irgendwie eleganter, speziell das Text-Anhängen?


Danke,

Thomas
__deets__
User
Beiträge: 4019
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mittwoch 13. Dezember 2017, 15:13

Dafuer nimmt man eigentlich ein QAbstractItemModel, mit dem sich dann der View automatisch updated, wenn du da die entsprechenden Eintraege gemacht hast. Viel weniger Code ist das allerdings nicht.
ThomasDD
User
Beiträge: 14
Registriert: Mittwoch 29. November 2017, 11:24

Mittwoch 13. Dezember 2017, 17:43

Danke, das QAbstractItemModel sieht wirklich interessant aus, es lohnt sich auf alle Fälle mal sich mit dem Konzept zu beschäftigen.
__deets__
User
Beiträge: 4019
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mittwoch 13. Dezember 2017, 18:19

Ich kann dir nur raten, dich ein bisschen ausfuehrlicher mit dem Konzept von QIndex zu beschaeftigen. Das ist jetzt nicht so schwer, aber zwei, dreimal lesen und vielleicht mal etwas experimentieren hilft. Mir jedenfalls hat ein Kollege mit viel Qt-Erfahrung da mal signifikant helfen koennen.
Antworten