2016-06-21 13 views
0

Ich versuche, eine QLabel-Anzeige ein Bild und einige Texte vertikal mit diesem Bild zentriert zu bekommen. Ich kann nicht herausfinden, wie das geht. Die meisten Quellen, die ich im Internet gefunden habe, schlagen vor, mit dem folgenden Code:Vertikal zentrierten Text in der Nähe eines Bildes in einem QLabel

ui->label->setText("<img src='c:/images.jpg' style='vertical-align:middle;'> Hello"); 

aber, was ich bekommen ist this. Die untere Zeile des Textes ist in der Nähe des Bildes zentriert, aber was ich gerne habe, ist die Mittellinie des zu zentrierenden Textes (so: made in ms paint). Klingt wie eine ziemlich gewöhnliche Aufgabe, aber ich konnte keine Antwort finden.

Wie kann ich das erreichen?

+0

Suchen Sie eine Lösung mit Stylesheet oder nicht unbedingt? Wenn nicht, können Sie einfach ein 'QHBoxLayout' erstellen und 2' QLabel' darin einfügen: eines mit dem Bild, eines mit dem Titel – IAmInPLS

+0

Stylesheets wird bevorzugt. Ja, ich habe über die 2-Etikett-Lösung nachgedacht, es sieht einfach nicht richtig aus –

Antwort

0

Ich habe versucht, es in meinem QtCreator laufen und es funktioniert gut. Also, für den Anfang können Sie Folgendes versuchen:

  1. Überprüfen Sie die Bildgröße. Öffne es in Paint.net oder so ähnlich. Vielleicht ist das oberste Bild ein leerer Bereich des Unsichtbaren. Das, die tatsächliche Größe des Bildes sieht aus wie ein längliches Rechteck, in dem der sichtbare Teil auf der Unterseite ist. Versuchen Sie ein anderes Bild.
  2. Versuchen Sie, das Format jpg in png zu ändern. Ich hatte Probleme mit der Anzeige von Bildern im JPG-Format, also versuche ich immer das PNG zu verwenden.
  3. Probleme mit Stilen. Qt funktioniert möglicherweise falsch mit CSS-Stil, weil es nicht Teil des Qt. Ich habe in Version Qt 5.4.0 getestet. Wenn Sie ein älteres haben, ist es vielleicht an der Zeit, es zu aktualisieren.
+0

Das Bild ist ein Quadrat, es befindet sich hier: http://imgur.com/hHaLXD4. Ich habe sowohl jpg als auch png ausprobiert - dasselbe Ergebnis. Ich benutze jedoch Qt 5.6. Könnten Sie bitte einen Screenshot posten? Vielleicht ist die von Ihnen verwendete Schriftgröße zu klein, um zu erkennen, ob der Text durch die untere Zeile des Textes zentriert ist (das ist, was ich jetzt habe) oder um die Mittellinie (das ist es, was ich erreichen möchte)? Versuchen Sie, eine größere Schriftgröße für das Label festzulegen? –

+0

@ O.W.Grant - Hm ... Ja, wenn ich die Schriftgröße vergrößere sieht das Etikett so aus: http://imgur.com/sxX7tSF. So, aber wenn ich diesen Code in jsfiddle: jsfiddle.net/nr6Lme5n es funktioniert. Ich denke der Grund ist, dass in Qt die vertikale Ausrichtung des Labels nicht funktioniert. Ich werde andere Varianten versuchen und schreiben, wenn ich eine Lösung finden kann. – steell911