我有一个QPlainTextEdit小部件,正在尝试让光标自动选择插入的文本。我目前的方法是使用QTextCursor.WordLeft因为使用.insertText()会将光标移到单词的末尾。谢谢!你知道吗
编辑:进一步澄清: 理想情况下,我希望插入的文本高亮显示,光标放在插入单词的开头。例如: State 1->; State 2
状态1显示一个输入字。一旦用户点击空格键,程序就会插入一个单词,高亮显示它,并将光标放在插入单词的开头,如状态2所示。你知道吗
class TextBox(QPlainTextEdit):
def __init__(self):
QPlainTextEdit.__init__(self)
font = QtGui.QFont()
font.setPointSize(12)
self.setFont(font)
def keyPressEvent(self, keyEvent):
super(TextBox, self).keyPressEvent(keyEvent)
if keyEvent.key() == Qt.Key_Return :
self.clear()
elif keyEvent.key() == Qt.Key_Space:
cursor = self.get_cursor()
cursor.insertText("test") # The area of concern
cursor.selectionStart()
cursor.movePosition(QtGui.QTextCursor.WordLeft, QtGui.QTextCursor.KeepAnchor, 1)
cursor.selectionEnd()
# Moving the cursor position doesn't seem to do anything
def get_cursor(self):
return self.textCursor()
def get_cursor_pos(self):
return self.get_cursor().position()
您缺少的是,要应用光标位置和选择,必须将光标设置回文本编辑。你知道吗
请记住,由于您调用的是keyPressEvent的基类实现,因此在“new”文本之前总会有一个空格。如果出于任何原因想要避免这种情况,那么每当您获得空格键时,都必须忽略这种情况。你知道吗
相关问题 更多 >
编程相关推荐