在 PyQt5 中将 QsciScintilla 的文本光标向左或向右移动
Move text-cursor of QsciScintilla to the left or right in PyQt5
我想知道我可以执行哪些特定命令来将 QsciScintilla 中的文本光标向左或向右移动?我知道对于 QPlainTextEdit,您可以执行命令:
self.textEdit.moveCursor(QTextCursor.Left)
或:
self.textEdit.moveCursor(QTextCursor.Right)
QsciScintilla 有类似的命令吗?
我试过了:
# left cursor movement
line, index = self.sci.getCursorPosition()
if index == 0 and line != 0:
#move to back line
elif index != 0:
self.sci.setCursorPosition(line, index - 1)
有两种方法可以做到这一点:
直接使用 low-level api to send keyboard commands 底层闪烁编辑器:
向左移动
self.sci.SendScintilla(Qsci.QsciScintillaBase.SCI_CHARLEFT)
右移
self.sci.SendScintilla(Qsci.QsciScintillaBase.SCI_CHARRIGHT)
使用high-level api显式设置行和索引:
向左移动
line, index = self.sci.getCursorPosition()
if index:
self.sci.setCursorPosition(line, index - 1)
elif line:
self.sci.setCursorPosition(
line - 1, self.sci.lineLength(line - 1) - 1)
右移
line, index = self.sci.getCursorPosition()
if index < self.sci.lineLength(line):
self.sci.setCursorPosition(line, index + 1)
elif line < self.sci.lines():
self.sci.setCursorPosition(line + 1, 0)
我想知道我可以执行哪些特定命令来将 QsciScintilla 中的文本光标向左或向右移动?我知道对于 QPlainTextEdit,您可以执行命令:
self.textEdit.moveCursor(QTextCursor.Left)
或:
self.textEdit.moveCursor(QTextCursor.Right)
QsciScintilla 有类似的命令吗?
我试过了:
# left cursor movement
line, index = self.sci.getCursorPosition()
if index == 0 and line != 0:
#move to back line
elif index != 0:
self.sci.setCursorPosition(line, index - 1)
有两种方法可以做到这一点:
直接使用 low-level api to send keyboard commands 底层闪烁编辑器:
向左移动
self.sci.SendScintilla(Qsci.QsciScintillaBase.SCI_CHARLEFT)
右移
self.sci.SendScintilla(Qsci.QsciScintillaBase.SCI_CHARRIGHT)
使用high-level api显式设置行和索引:
向左移动
line, index = self.sci.getCursorPosition() if index: self.sci.setCursorPosition(line, index - 1) elif line: self.sci.setCursorPosition( line - 1, self.sci.lineLength(line - 1) - 1)
右移
line, index = self.sci.getCursorPosition() if index < self.sci.lineLength(line): self.sci.setCursorPosition(line, index + 1) elif line < self.sci.lines(): self.sci.setCursorPosition(line + 1, 0)