pyside QTextEdit 选中文本事件

Posted

技术标签:

【中文标题】pyside QTextEdit 选中文本事件【英文标题】:pyside QTextEdit selected text event 【发布时间】:2014-03-22 20:36:27 【问题描述】:

我在左侧放置了一个 QTextEdit 小部件,在右侧放置了一个 QTextBrowser, 我正在寻找一种方法来执行以下操作:

    用户选择了一些文本 此事件触发了一个函数 所选文本已处理 处理后的文本显示在右侧

我用谷歌搜索了它,但没有看到相关结果。

【问题讨论】:

【参考方案1】:

您可以使用selectionChanged 信号触发该功能,然后通过textCursor 检索选定的文本。可以使用setPlainText 显示处理后的文本,或者,如果您想使用标记,则可以使用sethtml。但是注意QTextBrowser只支持html/css的limited subset。

这是一个演示脚本,展示了如何将它们组合在一起:

from PySide import QtCore, QtGui

class Window(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.edit = QtGui.QTextEdit(self)
        self.edit.selectionChanged.connect(self.handleSelectionChanged)
        self.browser = QtGui.QTextBrowser(self)
        layout = QtGui.QHBoxLayout(self)
        layout.addWidget(self.edit)
        layout.addWidget(self.browser)

    def handleSelectionChanged(self):
        text = self.edit.textCursor().selectedText()
        # process text here...
        self.browser.setPlainText(text)

if __name__ == '__main__':

    import sys
    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.setGeometry(500, 300, 600, 300)
    window.show()
    sys.exit(app.exec_())

【讨论】:

以上是关于pyside QTextEdit 选中文本事件的主要内容,如果未能解决你的问题,请参考以下文章

检查 QTextEdit 中所选文本的格式 - PySide6

如何对项目的复选框和文本以不同的方式处理点击事件? (PyQt/PySide/Qt)

PySide, QTextEdit Append 添加空行

为 keyPressEvent 子类化 QTextEdit 是唯一的方法吗?

PySide (Qt) 信号未到达我的插槽

具有不同文本颜色的 QTextEdit (Qt / C++)