2016-12-05 37 views
1

我在想這個,所以我做了很多谷歌搜索,並提出了SetWrapMode(self, mode)函數。然而,它從來沒有真正的細節,並沒有什麼真的說如何使用它。我最終搞清楚了,所以我想我會在這裏張貼一個線索,並回答我自己的問題,誰想知道如何使一個stc.StyledTextCtrl()有自動換行。如何在wxPython中爲stc.StyledTextCtrl()設置自動換行

回答

1

好的,首先你需要讓Styled Text Control定義好,當然。如果你不知道如何做到這一點,那麼就去看一些關於wxPython的教程吧。我推薦一個名爲sentdex http://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.CONTROLNAME定義的,並且您沒有將self.CONTROLNAME置於SetWordWrap()函數的開頭,那麼您也會遇到錯誤,因此請小心。模式必須是0或1-3。例如,我的看起來像這樣:self.control.SetWrapMode(mode=1)。自動換行模式選項:

0:無| 1:Word Wrap | 2:Character Wrap | 3:白色空間環繞

我的最終定義和自動換行的設置是這樣:

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

就是這樣!希望這有助於。

感謝@Chris Beaulieu在模式選項問題上糾正我。

0

我看到你回答了你自己的問題,除了一個小細節之外,你是對的。實際上有幾種不同的包裝模式。是的類型和與其對應的值如下:

  • 0:無
  • 1:自動換行
  • 2:字符換
  • 3:白色空間環繞

所以你無法輸入任何大於0的值以獲得自動換行。事實上,如果你在0-3之外輸入一個值,你最終應該不會換行,因爲這個值不應該被Scintilla識別,這就是stc庫。

+0

謝謝,這真的有幫助!我現在要改變我的答案。順便說一下,我不是那些無緣無故低估的混蛋,但是對於那些你可能想要使用評論的事情...有很多人會對這樣的答案產生負面影響,因爲它不是完整答案。無論如何,感謝您的澄清!我剛開始使用wxPython約一週前,所以我很新:) –

+1

歡迎您,我同意評論。我想做一個,但不幸的是,該網站不允許你評論其他人的問題或主題,除非你擁有50個或更多的聲望。這意味着我無法評論你的話題,直到我自己提交了答案:P –

相關問題