如何解决pyqt5中使用QSyntaxHighlighter突出显示语法
我一直在尝试使用QSyntaxHighlighter
模块来突出显示QTextEdit()
的语法。我看过here和here。不幸的是,两者都是pyqt4。例如,pyqt5不再使用QString()
或QStringList()
并建议分别使用str()
和list()
。即使进行了上述更改,我也无法对以下代码进行适当的更改:
def highlightBlock( self,text ):
for rule in self.highlightingRules:
expression = QRegExp( rule.pattern )
index = expression.indexIn( text )
while index >= 0:
length = expression.matchedLength()
self.setFormat( index,length,rule.format )
index = text.indexOf( expression,index + length )
self.setCurrentBlockState( 0 )
我得到的错误是AttributeError: 'str' object has no attribute 'indexOf'
。那么在这种情况下,对于pyqt5应该进行哪些适当的更改?我不希望使用QScintilla
。
解决方法
只需替换
index = text.indexOf(expression,index + length)
使用
index = expression.indexIn(text,index + length)
这应该可以解决问题;)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。