2016-09-23 8 views
0

wxPython RichTextCtrlでコードのハイライト表示にpygmentを利用しようとしています。wxPython - コードのハイライト表示とピググラム

これを達成するために、オンラインで(壊れたリンクを除く)見つけることができません。

ここにいくつかのサンプルコードがあります。私はいくつかの異なるフォーマッタを試しましたが、それらはすべて失敗します。私はpyraとwxpythonを使ってeditraを信じますが、ソースは移動が難しいです。

import wx 
import wx.richtext 

from pygments import highlight 
from pygments.lexers import get_lexer_by_name 
from pygments.formatters.rtf import RtfFormatter 


lexer = get_lexer_by_name("python", stripall=True) 
formatter = RtfFormatter() 

code = """ # Comment 
a = 5 
print(a) 
print(b) 
""" 

formatted_code = highlight(code, lexer, formatter) 

######################################################################## 
class MyFrame(wx.Frame): 

    # ---------------------------------------------------------------------- 
    def __init__(self): 
     wx.Frame.__init__(self, None, title='Richtext Test') 

     sizer = wx.BoxSizer(wx.VERTICAL) 
     self.rt = wx.richtext.RichTextCtrl(self) 
     self.rt.SetMinSize((300, 200)) 
     self.rt.ChangeValue(formatted_code) 

     sizer = wx.BoxSizer(wx.VERTICAL) 
     sizer.Add(self.rt, 1, wx.EXPAND | wx.ALL, 6) 

     self.SetSizer(sizer) 
     self.Show() 


# ---------------------------------------------------------------------- 
if __name__ == "__main__": 
    app = wx.App(False) 
    frame = MyFrame() 
    app.MainLoop() 

コメントで示唆されているように、私はStyledTextCtrlを使用して終了任意のヘルプ

+0

@Shatmers、wxRichTextCtrlを使用する必要がありますか? wxSTCを試すことはできますか? – Igor

+0

@Igor、必ずしもそうではありません。私はそれを調べるでしょう。ありがとう 編集:これはどのようにして動作しますか? – Shatnerz

+0

なぜピグリーグが必要ですか? wxSTCとwxREはどちらも単独で動作します。デモ/ wx C++のサンプルを見てください。 – Igor

答えて

0

いただきありがとうございます。 wxPythonソースには2つのデモが含まれていますが、2番目のデモは私が試していたものとまったく同じです。私はコードを投稿しますが、それは〜400行です。

関連する問題