2017-10-19 10 views
0

J'ai un QGridLayout avec QLabels qui affiche certaines valeurs et les unités de ces valeurs. Pour une bonne lisibilité, je souhaite que la valeur soit alignée à gauche dans QLabel et que l'unité soit alignée à droite.Alignements de texte multiples dans QLabel

Au début, je voulais le faire avec QtStyleSheets mais la seule façon que j'ai trouvé de changer le texte d'alignement du widget tout comme ceci:

myLabel.setStyleSheet("QLabel {qproperty-alignment: AlignRight}") 

Ma deuxième pensée est de le faire via HTML, mais là j'ai aussi rencontré plusieurs problèmes. Voici ce que j'ai essayé:

myLabel.setText("<div align=\"left\">Value<\div><div align=\"right\">Unit<\div>") 

Cela fait la bonne chose, après que la valeur est aligné à gauche et l'unité aligné à droite, mais ils ne sont pas sur la même ligne plus. Néanmoins, il me semble que c'est l'approche la plus prometteuse. Malheureusement, je ne suis pas très familier avec HTML. Quelqu'un peut-il aider?

Répondre

1

Ou si vous voulez vraiment juste aller avec html dans le tableau d'utilisation QLabel au lieu de années div. Mais @saeed a raison, mieux utiliser Qt Layouts et l'espacement entre eux.

Exemple avec HTML:

myLabel.setText("<table width=\"100%\"><td width=\"50%\" align=\"left\">Value</td><td width=\"50%\" align=\"right\">Unit</td></table>"); 
+0

Merci, qui a résolu mon problème! Ce n'est peut-être pas la meilleure solution, mais pour moi c'est la plus rapide à mettre en place. – user1938616

+0

avec plaisir, s'il vous plaît marquer votre question comme réponse – Xplatforms

0

Je vous suggère d'utiliser deux Qlabels et une image d'espacement horizontale ci-dessous, c'est rapide et vous pouvez laisser Qt gérer la disposition de conception entière.

some helpful image