2012-05-14 4 views
1

해당 줄 번호로 지정된 QPlainTextEdit 줄의 시작 부분에 커서를 놓으 려합니다. 문제는 커서가 "가상"행 번호를 사용하는 것, 즉 textedit에서 완료 한 줄 바꿈을 포함하여 "실제"줄 번호, 즉 줄과 시작 사이에 \n의 번호가있는 것입니다.특정 줄에 커서 위치 지정

old_line = textedit.textCursor().blockNumber() 
line = token.line 
diff = line - old_line 
move = QtGui.QTextCursor.Down if diff >= 0 else QtGui.QTextCursor.Up 
for _ in range(abs(diff)): textedit.moveCursor(move, QtGui.QTextCursor.MoveAnchor) 

답변

0

내가 갔다 간단한 솔루션은 커서를 이동하고 나중에 다시 활성화하기 전에 줄 바꿈을 비활성화하는 것이 었습니다 : 다음이 제대로 작동하지 않음을 의미

textedit.setLineWrapMode(QtGui.QPlainTextEdit.NoWrap) 
# above code in between here 
textedit.setLineWrapMode(QtGui.QPlainTextEdit.WidgetWidth) 

을 대부분 확실히 끔찍하게 비효율적이지만 몇 백 줄의 긴 텍스트에 대해서는 눈에 띄는 지체없이 잘 작동합니다.