Seite 1 von 1

Text über Bild legen (overlay?)

Verfasst: Dienstag 30. Juli 2019, 11:46
von Kebap
Hallo Leute,

ich habe eine QTextBrowser und möchte darin neben Fließtext auch Bilder anzeigen, die dynamisch von Text überlagert sein sollen.

In HTML & CSS habe ich es so gelöst:

Code: Alles auswählen

<html><head>
  <style>
    .container {
      position: relative;
      text-align: center;
      color: black;
      font-weight: bold;
    }
    .centered {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }
  </style>
</head><body>
  <p>Some text before.</p>
  <div class="container">
    <img src="image.png">
    <div class="centered"><h2>Text</h2></div>
  </div>
  <p>Some text after.</p>
</body></html>
In Qt scheint das nicht so einfach wie gedacht mit .setHtml() zu funktionieren. Der Text erscheint unterhalb des Bildes in einer eigenen Zeile.

In den Qt Docs finde ich hauptsächlich Infos zum Styling einzelner Elemente, nicht des Fließtextes bzw. wie beschrieben nur einzelnen Bildern darin.

Wer weiß Hilfe?

Re: Text über Bild legen (overlay?)

Verfasst: Dienstag 30. Juli 2019, 11:52
von __deets__
Ich behaupte mal du kommst da an die Grenzen des QTextBrowsers. Das ist keine volle HTML-Layout-Maschine. Sondern ein Mittelgrund fuer die Anzeige von Hilfetexten etc. Wenn du die vollen styling-Moeglichkeiten von HTML willst, dann benutz QWebView ode wie die Klasse im Moment heisst.

Re: Text über Bild legen (overlay?)

Verfasst: Dienstag 30. Juli 2019, 14:34
von Kebap
Wenn ich es richtig verstehe, ist das Problem bei QWebView, dass es keine lokalen Bilder laden will

Re: Text über Bild legen (overlay?)

Verfasst: Dienstag 30. Juli 2019, 14:38
von __deets__
Ich muesste dazu jetzt erstmal selbst durch QWebview buddeln. Salopp gesagt kann man natuerlich auch immer die nukleare Option waehlen, und in Python auch gleichzeitig einen webserver laufen lassen ;) Elegant ist anders, aber gehen tut's.

Und https://doc.qt.io/qt-5/qwebengineview.html#setContent zb suggeriert, das sowas geht.

Re: Text über Bild legen (overlay?)

Verfasst: Montag 5. August 2019, 19:05
von Kebap
Ich habe es jetzt mit einem QPainter bzw. dessen drawText Funktion gelöst, mit der ich dynamisch Text auf einem QImage hinzufügen kann.

Es fehlt nur noch eine Lösung, um den Text zusätzlich so bekannt zu geben, dass auch sichtbehinderte Personen ihn entziffern können.

Re: Text über Bild legen (overlay?)

Verfasst: Montag 5. August 2019, 19:10
von __deets__
Dann viel Spaß beim lesen ;) https://doc.qt.io/qt-5/accessible.html