QLabelumlaufmodus

8

Ich habe eine Beschriftung, die manchmal einen langen Text ohne Leerzeichen enthält (Pfad im Computer).

Also wrod Wrap wickelt es sehr seltsam.

Gibt es eine Möglichkeit, das Wort zu umbrechen, das in der Mitte des Wortes oder nicht nur in Leerstellen bricht?

    
sara 04.09.2012, 11:00
quelle

2 Antworten

5

Das ist nicht elegant, aber funktioniert ...
Also sagen Header-Klasse hat Private:

%Vor%

und natürlich definierendes thisLabel einige wo.  also wäre es schön wenn es so einfach wäre ....

%Vor%

das ist in Ordnung WENN UND NUR WENN das Wort Bruchstellen hat (Welche Wege sollten vermieden werden)

Halten Sie den tatsächlichen Pfad in einer separaten Zeichenfolge, wenn Sie sie später für QFile-Zwecke benötigen. Definieren Sie dann manuell ein Zeichen pro Zeilennummer und fügen Sie die Leerzeichen in die Zeichenfolge ein .... also sagen wir 50 Zeichen ist eine gute Breite ...

%Vor%

Shazam .... simulierter WordWrap ohne Original Leerzeichen ...

Denken Sie daran, dass die Pfadnamen-Zeichenfolge jetzt nur für hübsche QLabel-Zwecke verwendet wird und dass die pathNameClean-Zeichenfolge der tatsächliche Pfad ist. Qt-Programme stürzen ab, wenn Sie versuchen, eine Datei mit einem durch Leerzeichen injizierten Pfad zu öffnen .....

(Wenn es keine einfache Klassenmethode gibt, ist es wahrscheinlich nur ein paar Zeilen Code zu tun ...    und warum das Problemlösen das beste Werkzeug eines Programmierers ist!)

    
budda 06.03.2013 13:08
quelle
4

Eine Möglichkeit besteht darin, die Klasse QTextOption mit QTextDocument anstelle von QLabel. So können Sie QTextOption :: WrapMode verwenden. QTextOption :: WrapAtWordBoundaryOrAnywhere sollte tun, was Sie wollen.

    
Luca Carlon 04.09.2012 11:13
quelle

Tags und Links