Bold Font Size must be bigger from regular font size, but in Qt regular and bold font size have same sizes, and in some texts bold size is smaller from regular size.



  • I write a design program, When I do bold style in Arial 12, Width of FontMetrics is not changing.

    Normal Style

    0_1562151394166_normal.png

    Bold Style

    0_1562151113786_bold.png

    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
    ################



  • Isn't it normal? Didn't I understand the question?
    Bold versions of fonts have the same characters in the same pixel sizes with thicker lines by default :D As,
    Text
    Text
    seeing a difference in width?
    Edit: bu arada Türkmüşsün yeni fark ettim :D



  • @closx Evet hocam Türküm :)

    Sorumun başlığını ve içeriğini güncelledim, font bold olduğu zaman width'i artar genelde heryerde, burda artacagına tam tersine bazı text'lerde "yazı" gibi genişlikte düşme gerçekleşiyor.



  • 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!


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.