代码之家  ›  专栏  ›  技术社区  ›  qed

pyside QText编辑所选文本事件

  •  2
  • qed  · 技术社区  · 11 年前

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

    1. 用户选择一些文本
    2. 此事件触发函数
    3. 所选文本被处理
    4. 处理后的文本显示在右侧

    我在谷歌上搜索过,但没有看到相关结果。

    1 回复  |  直到 3 年前
        1
  •  4
  •   ekhumoro    11 年前

    您可以使用 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_())