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を使用して終了任意のヘルプ
@Shatmers、wxRichTextCtrlを使用する必要がありますか? wxSTCを試すことはできますか? – Igor
@Igor、必ずしもそうではありません。私はそれを調べるでしょう。ありがとう 編集:これはどのようにして動作しますか? – Shatnerz
なぜピグリーグが必要ですか? wxSTCとwxREはどちらも単独で動作します。デモ/ wx C++のサンプルを見てください。 – Igor