pyside QTextEdit选择了文本事件

时间:2014-03-22 20:36:28

标签: python qt user-interface pyside

我左边有一个QTextEdit小部件,右边有一个QTextBrowser, 我正在寻找一种方法来做到以下几点:

  1. 用户选择一些文字
  2. 此事件触发了一项功能
  3. 处理所选文字
  4. 处理后的文字显示在右侧
  5. 我用谷歌搜索了它,但没有看到相关的结果。

1 个答案:

答案 0 :(得分:3)

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

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

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_())