我有一个wxpython应用程序,它在TextCtrl中显示json。如何使用StyledTextCtrl显示正确突出显示的json? 是仅仅是单线改变还是更大?
顺便说一句,我创建了jsyntaxpane,它是一个内容,以突出几种语言。太糟糕了我现在需要wxPython。
答案 0 :(得分:1)
StyledTextCtrl应该适合你。但它没有JSON的内置词法分析器。
我会按以下顺序尝试选项:
stc.STC_LEX_AUTOMATIC
传递给StyledTextCtrl的SetLexer()
并查看它是否正确突出了您的json 希望有所帮助。
答案 1 :(得分:0)
我正在使用Python 3.7,并且提供了JSON词法分析器。您可以使用以下内容。
stc.StyledTextCtrl.__init__(self, parent)
self.SetLexer(stc.STC_LEX_JSON)
此外,还有其他属性,这些属性可能在将StyledTextCtrl用于JSON时有用。这些属性用于普通JSON的各个字段的字体大小和颜色。
self.StyleSetSpec(stc.STC_JSON_DEFAULT, "fore:#000000,face:%(helv)s,size:%(size)d" % fonts)
self.StyleSetSpec(stc.STC_JSON_NUMBER, "fore:#007F7F,size:%(size)d" % fonts)
self.StyleSetSpec(stc.STC_JSON_KEYWORD, "fore:#007F7F,bold,size:%(size)d" % fonts)
self.StyleSetSpec(stc.STC_JSON_STRING, "fore:#7F0000,size:%(size)d" % fonts)
self.StyleSetSpec(stc.STC_JSON_PROPERTYNAME, "fore:#FF5733,size:%(size)d" % fonts)