4

在 Pharo 和 Squeak 中,如果安装了它,您可以键入CommandShell open.,它将打开一个命令窗口,该窗口基本上类似于“bash shell”或“终端窗口”,但它使用的是近乎微观大小的默认字体。我似乎无法弄清楚如何改变它。

我发现smalltalk中的一般方法是浏览一个类的实现,看看你是否能找到你可以对类说什么来告诉它你想要什么,或者你可以通过某种方式修改类以便它回答一些问题与其他类不同,从而产生预期的效果。类似anInstanceOfCommandShell someViewOrControllerThingy setDefaultFont:blahblahblah或类似的东西。

似乎 CommandShell 使用 ShellWindowMorph 并且它接受 setFont 消息。我是 Smalltalk 和 Squeak 的新手,不知道下一步该做什么。

我正在使用 Pharo 2.0,但如果有人知道如何在 Squeak 中做到这一点,我相信它会大致相同。

请注意,我发现了 pharo 的设置,并且常规设置更改会影响主脚本窗口,但不会CommandShellTranscript以任何方式影响特殊或其内容。

在此处输入图像描述

我用来以编程方式更改其余字体的代码是另一个问题的答案。它说这样做:

|font codeFont|

font := LogicalFont familyName: 'Consolas' pointSize: 10.
codeFont := LogicalFont familyName: 'Consolas' pointSize: 9.
StandardFonts listFont: codeFont.
...
4

2 回答 2

5

您可以通过以下方式覆盖 ShellWindowMorph 默认 #textStyle:

textStyle
    " Answer a font for the text morph"

    ^ TextStyle default

该窗口应该可以直接从 shell 菜单(右上箭头)或设置浏览器设置字体。您可以通过将“Halo”菜单置于您感兴趣的变形上来修改任何变形属性(在 MS Windows 下 Alt+Shift+左键单击)并选择红色图标。然后选择 Debug -> Explore morph 并直接从 Explorer 设置文本样式:

self textMorph setTextStyle: TextStyle default
于 2013-03-19T02:36:52.100 回答
3

ShellWindowMorph 使用系统范围的 DefaultFixedTextStyle。

在 Squeak 中,您可以像这样更改它:

TextConstants
    at: #DefaultFixedTextStyle
    put: (TextStyle fontArray: {StrikeFont fromUser}).
于 2013-03-19T16:12:51.630 回答