如何在 Squeak 中指定文本大小
How to specify Text size in Squeak
我能够以多种方式修改 Squeak 中文本的外观,但我仍然找不到一种简单的方法来明确更改字体大小(作为数字)。你知道怎么做吗?
这是我的代码片段:
text1 := Text string: 'Hello ' attribute: (TextColor color: Color red).
text2 := Text string: 'World!' attribute:TextEmphasis normal.
text2 addAttribute: (TextColor color: Color magenta).
text2 addAttribute: (TextFontChange font2).
text2 addAttribute: (TextEmphasis underlined).
text := text1, ' ', text2.
(text asMorph) openInWorld .
看起来大小是字体对象的一部分。这使得我想出的代码片段也不太简单:
"Set a true type font of a certain size"
text
addAttribute:
(TextFontReference toFont:
((TTCFont family: 'BitstreamVeraSerif' size: 18)
ifNil: [self error: 'Font not found']))
from: 1 to: 4.
"Use the font of a text style with a certain size"
text
addAttribute:
(TextFontReference toFont:
((TextStyle named: 'Bitmap DejaVu Sans') fontOfPointSize: 22))
from: 1 to: 4.
"Use the current font with a different size"
text
addAttribute:
(TextFontReference toFont:
((TextStyle named: (text fontAt: 1 withStyle: TextStyle default) familyName)
fontOfPointSize: 18))
from: 1 to: 4.
我在第一种情况下包含了 ifNil: 块,因为如果您在文本中的某处安装了 nil 字体,TextMorph 会退出并停止绘制。如果字体系列和大小的组合出现在 Squeak 图像中,则 TTCFonly returns 一种字体。
另请注意,并非所有尺寸都可用。 fontOfPointSize:将查找可用且小于或等于请求大小的最接近的大小。探索以下内容:
TTCFont registry
TextStyle knownTextStyles
我能够以多种方式修改 Squeak 中文本的外观,但我仍然找不到一种简单的方法来明确更改字体大小(作为数字)。你知道怎么做吗?
这是我的代码片段:
text1 := Text string: 'Hello ' attribute: (TextColor color: Color red).
text2 := Text string: 'World!' attribute:TextEmphasis normal.
text2 addAttribute: (TextColor color: Color magenta).
text2 addAttribute: (TextFontChange font2).
text2 addAttribute: (TextEmphasis underlined).
text := text1, ' ', text2.
(text asMorph) openInWorld .
看起来大小是字体对象的一部分。这使得我想出的代码片段也不太简单:
"Set a true type font of a certain size"
text
addAttribute:
(TextFontReference toFont:
((TTCFont family: 'BitstreamVeraSerif' size: 18)
ifNil: [self error: 'Font not found']))
from: 1 to: 4.
"Use the font of a text style with a certain size"
text
addAttribute:
(TextFontReference toFont:
((TextStyle named: 'Bitmap DejaVu Sans') fontOfPointSize: 22))
from: 1 to: 4.
"Use the current font with a different size"
text
addAttribute:
(TextFontReference toFont:
((TextStyle named: (text fontAt: 1 withStyle: TextStyle default) familyName)
fontOfPointSize: 18))
from: 1 to: 4.
我在第一种情况下包含了 ifNil: 块,因为如果您在文本中的某处安装了 nil 字体,TextMorph 会退出并停止绘制。如果字体系列和大小的组合出现在 Squeak 图像中,则 TTCFonly returns 一种字体。
另请注意,并非所有尺寸都可用。 fontOfPointSize:将查找可用且小于或等于请求大小的最接近的大小。探索以下内容:
TTCFont registry
TextStyle knownTextStyles