MonoTyp Schriftart selber bauen mit QFontMetric

Verschiedenes zu Qt
Antworten
SaLu
Beiträge: 50
Registriert: 18. August 2008 18:06

MonoTyp Schriftart selber bauen mit QFontMetric

Beitrag von SaLu »

Hallo ich versuche gerade die Schriftart Arial für meine Zwecke anzupassen.
Ich hatte früher eine Schriftart mit gleicher Breite und konnte so QStrings schön formatieren.
Schön formatieren heißt

2x QString

1. QString max Länge 30 Zeichen, größer abschneiden, kleiner auffüllen mit ' '
2. QString max Länge 10 Zeichen, -,,-

und dann den 2ten an den 1ten anhängen.

So das war ja alles kein problem, da jedes Zeichen gleich groß. Nun das Problem das in Arial jedes Zeichen verschiedene Längen hat.
Ich habe versucht das folgendermaßen zu lösen.

Code: Alles auswählen

QFont font("Arial",12);
  QFontMetrics fm(font);
  int iSpaceWidth = fm.width('  '); // = 4
  if(m_sName.size() <= (150) && m_sName.size() != (146))
  {
      int iNameWidth = fm.width(m_sName);
      int iFactor = (NAME_WIDE-iNameWidth)/iSpaceWidth;
      m_sName += QString(iFactor,'  ');
     //hier will er nicht mehr, 
      m_sName = fm.elidedText(m_sName,Qt::ElideLeft,150-iSpaceWidth); //bis 146 abschneiden
  }
  else if(m_sName.size() > NAME_WIDE)
  {
      //Text abschneiden bis Name_Wide
      //m_sName = fm.elidedText(m_sName,Qt::ElideLeft,150-iSpaceWidth); //bis 146 abschneiden
  }
leider funktioniert das so leider nicht. 1px,2px,3px kann er leider nicht freilassen. Hat jmd eine Idee?
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Re: MonoTyp Schriftart selber bauen mit QFontMetric

Beitrag von archer »

Was spricht gegen eine andere Schriftart, Courier New oder ähnliche monospaced fonts?
SaLu
Beiträge: 50
Registriert: 18. August 2008 18:06

Re: MonoTyp Schriftart selber bauen mit QFontMetric

Beitrag von SaLu »

ja hatte zu Anfang auch Courier New drin, aber muss sagen, keine wirklich spannende Schriftart.
So den Überblick hab ich noch nicht über die freien monospaced fonts.

Habe gesehen das es Arial monospaced für 20€ gibt, aber dachte mir da ich nur diese "kleine" Funktion mit der Formatierung brauche, weiß jmd einen schnellen Weg.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: MonoTyp Schriftart selber bauen mit QFontMetric

Beitrag von franzf »

Warum soll es jetzt auch noch ne "spannende" Schriftart sein? Unter Linux kann der User einstellen, was er an Schriftarten haben will. Wenn das Programm sagt "Monospace", bekommt der User das, was er sonst auch immer bei monospace sieht. Bei mir ist das "DejaVu Sans Mono".
SaLu
Beiträge: 50
Registriert: 18. August 2008 18:06

Re: MonoTyp Schriftart selber bauen mit QFontMetric

Beitrag von SaLu »

Ja so einfach ist es leider nicht. Ich wollte alles komplett "mitliefern". Linux, Hardware und das Programm. D.h ich bin verantwortlich dafür welche Schriftart verwendet wird. Läuft das Programm z.B. in Asien, wollen diese eine ganz andere Schriftart. Jeder hat da seine persönlich Schriftart.
Ist es irgendwie möglich mit
plainText,richText das über html zu lösen?
Antworten