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

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

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

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

【问题讨论】:

    标签: python qt user-interface pyside


    【解决方案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_())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多