-
I write a design program, When I do bold style in Arial 12, Width of FontMetrics is not changing.
Normal Style
Bold Style
I am getting size of rectangle from FontMetrics class. If you notice, when I make bold font, dont change width of fontmetrics.
Another example;
When I apply bold style to font, width of text is decreasing.
Code:
QFont font("Arial",12);
QString txt = "Yazı";qDebug()<<"################";
QFontMetrics fm(font);
width = fm.width(txt);
qDebug()<<"Normal Width: "<<width;font.setBold(true);
QFontMetrics fm2(font);
width = fm2.width(txt);
qDebug()<<"Bold Width: "<<width;qDebug()<<"################";
Output:
################
Normal Width: 26
Bold Width: 25
################ -
-
NOTE TO MODERATORS: You can move the topic to 'Turkish' category if you want :D
@mehmetkarlik Hocam daha önce hiç qt'de bold text'le uğraşmadım tuhaf şekilde :D Bu yüzden bahsettiğiniz hatayla da hiç karşılaşmadım ve aşina da değilim. Ancak sorunu manuel olarak şöyle çözebileceğinizi düşünüyorum,QFont font("Arial",12); QString txt = "Yazı"; QFontMetrics fm(font); width = fm.width(txt); font.setBold(true); font.setLetterSpacing (QFont::AbsoluteSpacing, 2.0) //harfler arası boşluk 2 pixel olacak QFontMetrics fm2(font); width = fm2.width(txt);
-
@closx Eyvallah hacım sağol, 2.0 biraz fazla geldi ama 0.5 yaptım ideal oldu gibi, font boyutu büyüdükçe ona oranla artış yapmakta gerekebilir zannımca, çok sağol senin sayende atlatmış oldum bu hatayı :) , ama bence bu bir bug ve düzeltilmesi gerekiyor çünkü C#'ta, Javada aynı şeyi denedim, hatta word'dede aynı şeyi denedim width artıyor hepsinde, senin uyguladıgın çözümü arka tarafta Qt takımının uygulaması gerekiyor bence, sağol tekrardan yardımcı olduğun için :)
-
@mehmetkarlik Rica ederim, her zaman :D Haklısın düzeltilmesi gereken bir görsel hata.
Bu çözümü bir fonksiyona dönüştürerek bir standart oluşturabilir ve daha kolay işlenebilir hale getirebilirsin.
İyi çalışmalar!