【问题标题】:How to set up word wrap for an stc.StyledTextCtrl() in wxPython如何在 wxPython 中为 stc.StyledTextCtrl() 设置自动换行
【发布时间】:2016-12-05 17:42:03
【问题描述】:

我想知道这个,所以我做了很多谷歌搜索,并想出了SetWrapMode(self, mode) 函数。但是,它从来没有真正详细过,也没有真正说明如何使用它。我最终弄明白了,所以我想我会在这里发布一个帖子,并为想知道如何使stc.StyledTextCtrl() 自动换行的其他人回答我自己的问题。

【问题讨论】:

    标签: python-2.7 wxpython word-wrap


    【解决方案1】:

    好的,当然,首先您需要定义样式文本控件。如果你不知道怎么做,那就去看一些关于 wxPython 的教程。我推荐一个叫 sentdexhttp://youtube.com/sentdex 的 youtuber,他有一个关于 wxPython 的完整系列,还有 Zach King,他有一个关于制作文本编辑器的 4 集系列。无论如何,我对文本控件的定义如下所示:self.control = stc.StyledTextCtrl(self, style=wx.TE_MULTILINE)。你的可能看起来有点不同,但总体思路是一样的。

    self.control = stc.StyledTextCtrl(self, style=wx.TE_MULTILINE)
    

    很多地方会告诉你它必须是SetWrapMode(self, mode),但是如果你像我一样在开头有self.CONTROLNAME,如果你也把self作为参数,你会得到一个错误,因为self.在开头算作论据。但是,如果您的控件是用self.CONTROLNAME 定义的,并且您没有将self.CONTROLNAME 放在SetWordWrap() 函数的开头,那么您也会收到一个错误,所以要小心。模式只需为 0 或 1-3。例如,我的看起来像这样:self.control.SetWrapMode(mode=1)。自动换行模式选项:

    0:无 | 1:自动换行 | 2:字符换行 | 3:空白环绕

    我的最终定义和自动换行设置如下所示:

    self.control = stc.StyledTextCtrl(self, style=wx.TE_MULTILINE)
    self.control.SetWrapMode(mode=1)
    

    就是这样!希望这会有所帮助。

    感谢 @Chris Beaulieu 就模式选项的问题纠正我。

    【讨论】:

      【解决方案2】:

      我看到你回答了你自己的问题,除了一个小细节,你在各个方面都是对的。实际上有几种不同的换行模式。它们对应的类型和值如下:

      • 0:无
      • 1:自动换行
      • 2:字符换行
      • 3:空白环绕

      所以你不能输入任何大于 0 的值来获得自动换行。事实上,如果你输入 0-3 之外的值,你最终应该不会换行,因为 Scintilla 不应该识别该值,这就是 stc 库。

      【讨论】:

      • 谢谢,这真的很有帮助!我现在改变我的答案。顺便说一句,我不是那些无缘无故投反对票的混蛋之一,但对于这样的事情,你可能想使用 cmets ......有很多人会对这样的答案投反对票,因为它不是完整的答案。无论如何,感谢您的澄清!我大约一周前才开始使用 wxPython,所以我很新:)
      • 欢迎您,我同意 cmets。我想做一个,但不幸的是,除非您拥有 50 或更多的声誉,否则该网站不允许您评论其他人的问题或主题。这意味着在我自己提交答案之前,我无法对您的主题发表评论:P
      【解决方案3】:

      使用常量stc.WRAP_NONEstc.WRAP_WORDstc.WRAP_CHARstc.WRAP_WHITESPACE 代替它们的数值会更易于维护。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-15
        • 2011-08-17
        • 1970-01-01
        • 2011-11-13
        • 1970-01-01
        • 1970-01-01
        • 2011-10-15
        • 1970-01-01
        相关资源
        最近更新 更多