2016-03-31 14 views
1

Wie kann man am besten feststellen, ob die Textgröße die Breite von QLabel überschreitet? Und dementsprechend die Textgröße ändern?Dynamische Textgröße QLabel

Ich habe eine QLabel mit Word-Wrap-Option auf True festgelegt, aber wenn Text so lang ist, wird es von der linken und rechten Seite beschnitten.

+1

Ist Ihr Label-Widget von einem Layout verwaltet? Wenn ja, sollten Sie die 'sizeConstraint' im obersten Layout (' label-> widnow() -> layout() ') setzen, damit das Fenster immer groß genug ist, um alle Inhalte aufzunehmen. –

Antwort

2

Vielleicht möchten Sie diesen Ansatz versuchen:

QLabel label; 
QRect r = label.fontMetrics().boundingRect("My text")); 
int textWidth = r.width(); 
+0

wird es wahrscheinlich nur für deaktiviertes Word-Wrap funktionieren. – Hcorg

+0

@Hcorg, Die Breite des Textes hängt nicht von den Eigenschaften von QLabel ab. – vahancho

+0

ja, ich weiß. Ich meine - es wird nicht für Etiketten funktionieren, die mehrere Textzeilen enthalten können, die mit einem Zeilenumbruch unterbrochen wurden. Für Single-Line-Label sollte fontMetrics() .... width() im Vergleich zu label.width() helfen. – Hcorg