這說明字體尺度 GC和FonData獲取字體高度有什麼區別?
我認爲我們可以在SWT中獲得像這樣的「字體高度」
GC gc = new GC(label);
System.out.println(gc.textExtent(label.getText()));
System.out.println(label.getFont().getFontData()[0].getHeight());
爲什麼這兩個出口不一樣?哪一個字符串的高度是正確的?
這說明字體尺度 GC和FonData獲取字體高度有什麼區別?
我認爲我們可以在SWT中獲得像這樣的「字體高度」
GC gc = new GC(label);
System.out.println(gc.textExtent(label.getText()));
System.out.println(label.getFont().getFontData()[0].getHeight());
爲什麼這兩個出口不一樣?哪一個字符串的高度是正確的?
GC#textExtent()
返回程度像素,而FontData
返回在字體點。這裏的單位不同。
使用FontMetrics.getHeight()
以像素爲單位獲得高度。
FontMetrics fontMetrics = gc.getFontMetrics()
使用此方法的問題是如果文本包含任何返回。使用textExtent將包含多行的像素。 – Michael
那麼如何將SWT像素轉換爲點? – miqbal
實際上並不完全確定,但我只是通過字體高度循環,直到達到我需要的像素高度。 –
謝謝。但是,這似乎並不方便。 – miqbal