在我的 stc.StyledTextCtrl 中插入一个空格,这样代码就不会那么接近行号

Posted

技术标签:

【中文标题】在我的 stc.StyledTextCtrl 中插入一个空格,这样代码就不会那么接近行号【英文标题】:Insert a space into my stc.StyledTextCtrl so the code isnt so close to the line numbers 【发布时间】:2013-01-09 06:21:29 【问题描述】:

我正在尝试实现下划线位于第 1 行和第 5 行的空间,以便在行号和代码之间提供一点填充,使其看起来不那么混乱。

我将如何做到这一点?

【问题讨论】:

【参考方案1】:

使用.SetMarginLeft(width)。示例:

import wx
import wx.stc as stc

class MainWindow(wx.Frame):
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        self.panel = wx.Panel(self)

        self.text = stc.StyledTextCtrl(self.panel)
        self.text.SetWindowStyle(self.text.GetWindowStyle() | wx.DOUBLE_BORDER)
        self.text.StyleSetSpec(stc.STC_STYLE_DEFAULT, "size:15,face:Courier New")
        self.text.SetWrapMode(stc.STC_WRAP_WORD)
        self.text.SetMarginLeft(50)

        self.menu = wx.Menu()
        self.menu.Append(wx.ID_ABOUT, "&About", "Information about this program")
        self.menu_bar = wx.MenuBar()
        self.menu_bar.Append(self.menu, "&File")
        self.SetMenuBar(self.menu_bar)

        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.text, 1, wx.ALL | wx.EXPAND, 5)

        self.panel.SetSizerAndFit(self.sizer)

        self.text.Bind(stc.EVT_STC_CHANGE, self.OnChange)
        self.Show()

        self.text.SetText("Line!\n"*98)

    def OnChange(self, e):
        lines = self.text.GetLineCount()
        width = self.text.TextWidth(stc.STC_STYLE_LINENUMBER, str(lines)+" ")
        self.text.SetMarginWidth(0, width)


if __name__ == "__main__":
    app = wx.App(False)
    win = MainWindow(None)
    app.MainLoop()

【讨论】:

以上是关于在我的 stc.StyledTextCtrl 中插入一个空格,这样代码就不会那么接近行号的主要内容,如果未能解决你的问题,请参考以下文章

JAVA------20.图片中插文字和图片

在win7中插上网线就能上网,但是在ubuntu中连百度都打不开是啥原因

如何利用Zotero在Word中插文献

SQL怎么在有外键的主键表中插数据

Python:用 groupby 绘制熊猫数据框 - 奇怪的输出

SQL怎么在有外键的主键表中插数据