Tabulatorweite setzen

Alles rund um die Programmierung mit Qt
Antworten
s-valve
Beiträge: 87
Registriert: 1. April 2007 15:03
Kontaktdaten:

Tabulatorweite setzen

Beitrag von s-valve »

Hallo,

ich habe ein kleines Problemechen bei meinem Projekt.
Es geht um die Tabulatorweite, welche ich einstellbar für ein QTextEdit sein soll.
Das funktioniert auch ganz gut mit folgenden zeilen:

Code: Alles auswählen

TextEdit1->setTabStopWidth(tabStopWidth);
Momentan berechne ich den Wert "tabStopWidth" mit x*6+1, was nur teilweise korrekte Ergebnisse liefert. (Die Formel hieß mal x*6.26 unter Borland C++ und hatte dort zufriedenstellender funktioniert).

Probleme habe ich insbesondere dann, wenn ich Dateien einlesen die mein Programm nicht erzeugt hat. Die Anzahl der Tabulatoren kann gleich sein, aber die Weite stimmt teilweise überhaupt nicht.

Kann mir jemand vlt. auf die Sprünge helfen bei dem Thema?

Gruß,
M
dontinelli
Beiträge: 146
Registriert: 22. September 2006 20:53

Beitrag von dontinelli »

was genau ist nicht korrekt?
s-valve
Beiträge: 87
Registriert: 1. April 2007 15:03
Kontaktdaten:

Beitrag von s-valve »

Hallo,

nun, die Weite scheint einfach nicht zu stimmen. Mal passt es an einer Stelle und dann sind die Tabulatoren wieder stark verschoben (vlt. so 2-8 Leerzeichen).

Ich glaube aber eine Lösung gefunden zu haben. Zumindes sind damit die Probleme behoben:

Code: Alles auswählen

QFontMetrics fm(font);
tabStopWidth = Pref_spinBox_TabWidth->value()*fm.width(" ");
TextEdit1->setTabStopWidth(tabStopWidth);   
Habe einfach noch mal in der Qt Doku gelesen und es mal mit der Breite eines Leerzeichens der gegebenen Schriftart versucht.

Gruß,
M
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du willst doch nicht etwa behaupten, daß du den Unterschied zwischen proportionalen und nicht-proportionalen Font nicht kennst?
s-valve
Beiträge: 87
Registriert: 1. April 2007 15:03
Kontaktdaten:

Beitrag von s-valve »

Doch klar, aber die Dateien werden eigentlich nur mit CourierNew erstellt...
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Was hat die erstellung mit der Darstellung zu tun?
s-valve
Beiträge: 87
Registriert: 1. April 2007 15:03
Kontaktdaten:

Beitrag von s-valve »

Die Darstellung erfolgt im QTextEdit üblicherweise auch mit der Schriftart CourierNew. Aber da die Schriftart einstellbar ist, ist die lösung mit der Länge des Leerzeichens wohl angebrachter.

Gruß
Antworten