1

StyledTextCtrlのフォントサイズを少し小さくしましたが、テキストコントロールの余白のフォントサイズ、つまり行番号フォントには影響しませんでした。

例

余白のフォントサイズを制御する方法はありますか?


興味のある方のために、ここに私のサブクラスがあります:

class CustomTextCtrl(StyledTextCtrl):
    """A `StyledTextCtrl` subclass with custom settings."""
    def __init__(self, *args, **kwargs):
        StyledTextCtrl.__init__(self, *args, **kwargs)

        # Set the highlight color to the system highlight color.
        highlight_color = wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT)
        self.SetSelBackground(True, highlight_color)

        # Set the font to a fixed width font.
        font = wx.Font(12, wx.FONTFAMILY_TELETYPE, wx.FONTSTYLE_NORMAL,
                       wx.FONTWEIGHT_NORMAL, False, 'Consolas',
                       wx.FONTENCODING_UTF8)
        self.StyleSetFont(0, font)

        # Enable line numbers.
        self.SetMarginType(1, wx.stc.STC_MARGIN_NUMBER)
        self.SetMarginMask(1, 0)
        self.SetMarginWidth(1, 25)

    def SetText(self, text):
        """Override of the `SetText` function to circumvent readonly."""

        readonly = self.GetReadOnly()
        self.SetReadOnly(False)
        StyledTextCtrl.SetText(self, text)
        self.SetReadOnly(readonly)

    def ClearAll(self):
        """Override of the `ClearAll` function to circumvent readonly."""

        readonly = self.GetReadOnly()
        self.SetReadOnly(False)
        StyledTextCtrl.ClearAll(self)
        self.SetReadOnly(readonly)
4

1 に答える 1

1

StyleSetFontに間違ったスタイル番号を使用しています。あなたはおそらく使用するつもりでした:

self.StyleSetFont(wx.stc.STC_STYLE_DEFAULT,font)

これは、0ではなく32の値を持ちます。行番号のフォントを個別に設定する場合は、次を使用します。

self.StyleSetFont(wx.stc.STC_STYLE_LINENUMBER,font)

詳細については、wxStyledTextCtrl-スタイリングとスタイル定義を参照してください。

于 2012-10-25T12:09:36.760 に答える