2014-10-08 1 views
0

나는 QTextBrowser을 가지고 있으며 텍스트의 일부를 선택하면 선택 영역의 시작과 끝 위치가 필요합니다. 나는 mousePressEventmouseReleaseEvent으로 작동하지만 작동하지만 강조 표시 선택 (진한 파란색)이 나타나지 않습니다. 왜? 그래서 내가 선택한 것을 볼 수 없다.QTextBrowser에서 텍스트 선택

신호가 selectionChanged인데 신호를 보낼 때마다 신호를 보내고 마우스를 놓을 때가 아니라 선택을 마칠 때마다 문제가 발생합니다.

의견이 있으십니까?

감사합니다.

편집 :

class MyBrowser(QTextBrowser): 
    def __init__(self, parent=None, textableAnnotate=None): 
     super(MyBrowser, self).__init__(parent) 
     self.textableAnnotate = textableAnnotate 
     self.mousePress   = 0 
     self.mouseRelease  = 0 

    def mousePressEvent(self, mouseEvent): 
     self.mousePress = self.cursorForPosition(mouseEvent.pos()).position() 

    def mouseReleaseEvent(self, mouseEvent): 
     self.mouseRelease = self.cursorForPosition(mouseEvent.pos()).position() 

내가 클릭의 위치를 ​​필요

이 내가 원하는처럼 작동합니다. 여기 : self.mousePress 및 self.mouseRelease. 그러나 QTextBrowser에서 텍스트를 선택하면 강조 표시되지 않습니다.

또는이 : 당신이 정상적인 동작을 변경했기 때문에

self.browserInput.selectionChanged.connect(self.position) 

def position(self): 
     start = self.browserInput.textCursor().selectionStart() 
     end = self.browserInput.textCursor().selectionEnd() 
+0

어떤 의미에서 화면 좌표, 텍스트 인덱스 또는 다른 것을 사용해야합니까? 당신이하려고하는 것을 보여주는 최소한의 코드를 게시해야합니다. – mdurant

+0

아무도 모릅니다. – Malain

답변

0

당신은 정상 핸들러까지 이벤트를 전달해야 내가

편집 2 ... 나는 더 명확 나는 희망 . 적절한 이벤트 처리기 끝에 다음 줄을 추가하십시오.

QTextBrowser.mousePressEvent(self, mouseEvent) 

QTextBrowser.mouseReleaseEvent(self, mouseEvent) 
+0

감사합니다! 이제 작동합니다. – Malain