Qt 字型大小的計算

2021-08-20 03:53:30 字數 1425 閱讀 3445

在qfont當中有兩種方式設定字型大小,一種是pixelsize,另一種是pointsize

point實際是磅,也就是 1/72 inch

我們可以從painterdevice中得到當前dpi(dot per inch)。因此 pixel = dpi * point / 72

例如設定字型為20point。 那麼字型的畫素大小是 90 * 20 / 72 約等於 25.

可以將字型設定為25pixel,看到字型的大小就是20point和25pixel大小是一樣的。

qfont當中設定的大小,實際上字型的高度,由如下組成。

由pixelsize設定的高度,實際是asent + 1畫素(baseline的高度)。

在字型大小中涉及了以下知識:

dpi: dot per inch,在顯示器上也就是每英吋包含的畫素。英呎的換算為 1 cm = 0.39 inch, 1 inch = 2.54 cm。

dpi 可以通過如下計算得來:

水平 dpi = 水平 resolution * 2.54 / 顯示器寬度

垂直 dpi = 垂直 resolution * 2.54 / 顯示器高度

pixel pitch(點距): 畫素點間距離。可以用25.4mm / dpi得到。

字型在螢幕上的實際大小 = 字型畫素大小 * 點距

大部分顯示器的dpi為90.6左右,垂直和水平點距可能不一樣。但windows為了方便就同一了點距,為96。我當前使用的ubuntu的點距也是96。因此如果想要看到更大的字型可以使用更大的點距。

終於弄明白了 pixel size 是所佔的畫素大小  這樣有乙個缺點 有些顯示器的解析度(dpi)比較大  那麼單位長度中的畫素點就比較多 這樣乙個字所佔的長度就會比較少

而 point size 則規定了實際中我們肉眼看到的字型的大小 他和pixel無關的~ 他和顯示器無關  不管在什麼樣上的顯示器上 規定大小是多少就是多少...

解決setpointsize字太小的問題

在ui編輯器裡,並沒有setpixelsize的設定,只有setpointsize。如果要在開發板上顯示正常的字型大小,必須要將pointsize設得很大,那麼在計算機上的字就變得超大,無法通過ui編輯器達到所見即所得的效果。前面我們說過,這是因為顯示器dpi不同的原因。在qt應用中,可通過環境變數來設定dpi,如下:

export qws_display="linuxfb:mmwidth95:0" 

export qws_size="640x480"

重新啟動qt應用程式時,發現字型大小和計算機上的字型大小相差不那麼大了,95的值並不是很準確,需要跟據顯示器來調整,輸入合適的dpi值,(我用群創at056tn53的屏,dpi值設定為180比較合適)

詳細可見:

Qt 字型大小的計算

在qfont當中有兩種方式設定字型大小,一種是pixelsize,另一種是pointsize point實際是磅,也就是 1 72 inch 我們可以從painterdevice中得到當前dpi dot per inch 因此 pixel dpi point 72 例如設定字型為20point。那麼...

Qt 控制項自適應字型大小

當你的字型太大的時候需要qlable自適應調整qlable的高度,adjustsize就可以滿足此要求,其他的控制項也一樣,比如qcheckbox,qlineedit等控制自適應字型大小都可以使用adjustsize lable adjustsize 自動調整label的高度,需要注意的是這個不是一...

計算字型大小及尺寸

computing metrics for a single line of text sizewithfont sizewithfont forwidth linebreakmode 將字串放入指定寬度,如果不夠,就依據換行方式截斷字串,返回其大小。sizewithfont minfontsize...