代码之家  ›  专栏  ›  技术社区  ›  Matthieu Raynaud de Fitte

PyQt5 QTextEdit在复制/粘贴到其中时会更改颜色

  •  0
  • Matthieu Raynaud de Fitte  · 技术社区  · 6 年前

    在我的应用程序中,我有一个QTextEdit。当我正常写入时,它工作正常,但当我从IDE复制/粘贴文本(例如,在我的例子中,在黑暗模式下的pycharm)到它时,QTextEdit也会获取文本的颜色和背景。

    这是正常的外观:

    normal appearance

    这是我从IDE复制粘贴时发生的情况:

    enter image description here

    更改颜色后,下一次写入输入将保持相同的颜色,直到下一次复制/粘贴。

    如何避免QTextEdit使用默认颜色以外的颜色(黑色文本、白色背景)?

    0 回复  |  直到 6 年前
        1
  •  3
  •   musicamante    5 年前

    QTextEdit具有 acceptRichText 所有物

    把它设为False。


    QTextEdit允许使用富格文本内容,如果从中获取文本的源支持剪贴板的富格文本,那么您将得到它。
    为了避免这种行为,可以将qtexdit子类化并重写 insertFromMimeData(mimeData)

    
    class TextEdit(QtWidgets.QTextEdit):
        def insertFromMimeData(self, source):
            newData = QtCore.QMimeData()
            for format in source.formats():
                if format == 'text/plain':
                    newData.setData(format, source.data(format))
            super().insertFromMimeData(newData)