在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"重新啟動qt應用程式時,發現字型大小和計算機上的字型大小相差不那麼大了,95的值並不是很準確,需要跟據顯示器來調整,輸入合適的dpi值,(我用群創at056tn53的屏,dpi值設定為180比較合適)export qws_size="640x480"
詳細可見:
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...