Zentrierter Text in QGraphicsTextItem

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Patrick1990
User
Beiträge: 116
Registriert: Freitag 3. Juni 2016, 05:45

Hallo,

habe mal wieder eine Frage.
Ich möchte mehrere kleine Bezeichnungen in eine QGraphicsScene schreiben, welche zentriert ausgerichtet sein sollen.
Zur Zeit funktioniert das leider nur linksbündig.
Nach einiger Recherche bin ich nun der Meinung, dass das mit dem QGraphicsTextItem nicht funktioniert. Oder irre ich mich?

Wenn der Text mittels QPainter.drawText() geschrieben wird, ist jedoch eine Zentrierung möglich.
Wie kann ich nun QPainter aber wie ein QGraphicsItem verwenden? Oder kann man das irgendwie einbinden?
Da habe ich derzeit noch Verständnisprobleme.

Vielen dank im Voraus.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich denke du musst die Breite des Texts ermitteln & dann den Ankerpunkt entsprechend nach links verschieben. Oder du baust dein eigenes QGraphicsitem, da bekommst du ja einen qpainter in den du malen kannst.
Patrick1990
User
Beiträge: 116
Registriert: Freitag 3. Juni 2016, 05:45

__deets__ hat geschrieben: Montag 14. Mai 2018, 08:37 Ich denke du musst die Breite des Texts ermitteln & dann den Ankerpunkt entsprechend nach links verschieben. Oder du baust dein eigenes QGraphicsitem, da bekommst du ja einen qpainter in den du malen kannst.
Die Ermittlung via textWidth() gibt eine "-1" aus. Damit kann man leider wenig anfangen.
Ansonsten kann ich die Anzahl der Buchstaben auslesen.

Wie würde das Bauen eines QGraphicsItem funktionieren?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Was du auch machen kannst: die breite setzen, und den Text mit HTML zentrieren. Steht innere Doku.

Und auch wie man ein eigenes item erstellt. Du musst halt ableiten & die entsprechenden Methoden überladen.
Antworten