首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTextBrowser中文本的选择

QTextBrowser中文本的选择
EN

Stack Overflow用户
提问于 2014-10-08 17:29:59
回答 1查看 403关注 0票数 0

我有一个QTextBrowser,当我选择一部分文本在里面,我需要的位置开始和结束的选择。我在mousePressEventmouseReleaseEvent中这样做,它可以工作,但是高亮选择(深蓝色)不会出现。为什么?所以我看不出我选了什么。

我尝试使用信号selectionChanged,但问题是每次选择文本时都调用信号,而不是在释放鼠标和选择结束时调用信号。

有什么建议吗?

谢谢!

编辑:

这就像我想要的那样

代码语言:javascript
复制
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中选择文本时,突出显示就不会出现了。我希望我更清楚..。

编辑2:

或者这个:

代码语言:javascript
复制
self.browserInput.selectionChanged.connect(self.position)

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-10 13:37:37

您需要将事件传递给普通处理程序,因为您已经更改了正常行为。在适当的事件处理程序末尾添加以下行:

代码语言:javascript
复制
QTextBrowser.mousePressEvent(self, mouseEvent)

QTextBrowser.mouseReleaseEvent(self, mouseEvent)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26262892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档