我正在寻求实现这样的事情:
但我不知道从哪里开始,现在我的文本编辑器有语法突出显示和行号,所以下一步是添加自动缩进。 我该如何添加它?有例子吗? 我现在代码的主要部分可以在这里找到:
这需要大量的改进,但应该可以给你一个想法。您基本上只想检查最后一行的结尾,以确定是否需要缩进,然后将其插入文本编辑中。
self.text_edit = QtWidgets.QTextEdit()
self.text_edit.textChanged.connect(self.add_indent)
def add_indent(self):
if self.text_edit.toPlainText().endswith(':\n'):
self.text_edit.insertPlainText(' ')
将此函数连接到 textChanged 应该会有所帮助。
class something(QPlainTextEdit):
self.indenter = 0
def textchanged(self):
self.highlighter.highlightBlock(self.toPlainText())
pos = self.getPosition()
try:current = self.toPlainText()[pos - 1]
except:return
if self.indenter and current == "\n":
for i in range(self.indenter):
self.insertPlainText("\t")
if current == "{":
self.indenter += 1
elif current == "}":
self.indenter -= 1