PyQt4의 텍스트 편집기에 구문 강조를 추가하려고합니다. 나는 C++에서 컴파일되었을 때 찾을 수있는 예제 문서를 찾았지만 파이썬/PyQt로 변환하면 더 이상 작동하지 않습니다.PyQt4 강조 표시
실패하지 않습니다 (더 이상 아무것도 강조) 코드의 일부는 다음과 같습니다이 작동하지 않는 이유
self.connect(self, SIGNAL('cursorPositionChanged()'), self.highlightCurrentLine)
사람이 어떤 생각을 가지고 :에 의해
def highlightCurrentLine(self):
extraSelections = []
if not self.isReadOnly():
selection = QTextEdit.ExtraSelection()
lineColor = QColor(Qt.yellow).lighter(160)
selection.format.setBackground(lineColor)
selection.format.setProperty(QTextFormat.FullWidthSelection, QVariant(True))
selection.cursor = self.textCursor()
selection.cursor.clearSelection()
extraSelections.append(selection)
self.setExtraSelections(extraSelections)
라고하는? 내가 usuing하고
버전은 다음과 같습니다 파이썬 2.6.2, 어딘가 PyQt는 4.4.4
답장을 보내 주셔서 감사합니다. 불행히도 이것은 도움이되지 못했습니다. setBackground 메서드는 lineColor에 대한 참조를 유지해야합니다. – JonahSan
아니요. Python은 포인터를 내부적으로 저장하는 C++ 메소드에 전달합니다. 반환하면 Python 부분이 삭제되고 (C++ 객체도 삭제됨) 이제 setBackground()가 잘못된 인스턴스를 가리 킵니다. –
추신 : 나는 이것이 문제의 원인이 아니었지만 두려웠지만 그럼에도 불구하고 실수 다. –