Python 2.7 如何在wxPython中为stc.StyledTextCtrl()设置换行符

Python 2.7 如何在wxPython中为stc.StyledTextCtrl()设置换行符,python-2.7,wxpython,word-wrap,Python 2.7,Wxpython,Word Wrap,我想知道这一点,所以我做了很多谷歌搜索,并提出了SetWrapMode(self,mode)函数。然而,它从未真正详细过,也没有真正说明如何使用它。我最终找到了答案,所以我想我应该在这里发布一个帖子,并回答我自己的问题,如果有人想知道如何制作一个stc.StyledTextCtrl()自动换行。好的,那么首先你当然需要定义你的样式文本控件。如果你不知道怎么做,那就去看一些关于wxPython的教程。我推荐一个叫sentdex的youtuber,他有一个关于wxPython的完整系列,还有Zach

我想知道这一点,所以我做了很多谷歌搜索,并提出了
SetWrapMode(self,mode)
函数。然而,它从未真正详细过,也没有真正说明如何使用它。我最终找到了答案,所以我想我应该在这里发布一个帖子,并回答我自己的问题,如果有人想知道如何制作一个
stc.StyledTextCtrl()
自动换行。

好的,那么首先你当然需要定义你的样式文本控件。如果你不知道怎么做,那就去看一些关于wxPython的教程。我推荐一个叫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:空白换行

我的最终定义和word wrap设置如下所示:

self.control = stc.StyledTextCtrl(self, style=wx.TE_MULTILINE)
self.control.SetWrapMode(mode=1)
就这样!希望这有帮助


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

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

  • 0:无
  • 1:换行
  • 2:字符换行
  • 3:空白换行

因此,您不能输入任何大于0的值来获取换行符。事实上,如果您输入的值超出0-3,您应该不会得到任何换行符,因为该值不应该被闪烁体识别,这就是stc库。

使用常量
stc.wrap\u NONE
stc.wrap\u WORD
stc.WRAP_CHAR
stc.WRAP_WHITESPACE
而不是它们的数值。

谢谢,这真的很有帮助!我现在要改变我的答案。顺便说一句,我不是那种无缘无故地否决投票的混蛋,但对于这样的事情,你可能想使用评论。。。有很多人会否决这样的答案,因为它不是一个完整的答案。无论如何,谢谢你的澄清!我大约一周前才开始接触wxPython,所以我还是个新手:)欢迎光临,我同意你的评论。我想做一个,但不幸的是,该网站不允许你评论其他人的问题或话题,除非你有50或更多的声誉。这意味着我不能评论你的话题,直到我自己提交了一个答案:P