0

我正在尝试更改以下 StyledTextCtrl 的默认字体颜色,我已经对此进行了一段时间的测试并更改了十六进制代码值,但是我似乎无法让它更改颜色。(我希望它是紫色的)。当前默认颜色为黑色。

当我添加

self.StyleSetForeground(wx.stc.STC_STYLE_DEFAULT,wx.Colour(230, 230, 250))

它改变了行号的颜色。(在 StyledTextCtrl 的一侧,它显示了您所在的行)。

有谁知道解决方案,或者可能是什么导致了冲突?

4

1 回答 1

1

self.StyleSetForeground(wx.stc.STC_STYLE_DEFAULT,wx.Colour(230, 230, 250))只会改变默认样式的颜色。

您的代码使用许多不同的样式,每种样式都指定了自己的颜色。请注意以下代码中的“前”参数:

self.StyleSetSpec(stc.STC_P_COMMENTLINE,
    "fore:#007F00,face:%(other)s,size:%(size)d" % faces)

您的行号似乎使用默认样式,而所有其他文本都使用自己的样式。我不明白样式是在哪里设置的,所以我无法解释为什么行号不使用wx.stc.STC_STYLE_LINENUMBER.

因此,要么删除self.StlyeSetSpec()调用,要么在初始化程序的末尾包含你的self.StyleSetForeground()调用(不要忘记调用self.StyleClearAll()以将所有文本重置为默认样式)。

于 2012-06-04T07:33:59.833 回答