PyQt5 QTextEdit меняет цвет при копировании / вставке в него - PullRequest
0 голосов
/ 18 марта 2020

В моем приложении у меня есть QTextEdit. Он прекрасно работает, когда я пишу в него нормально, но когда я копирую / вставляю в него текст из своей IDE (например, в моем случае, pycharm в темном режиме), QTextEdit также принимает цвет и фон текста.

Это нормальный вид:

normal appearance

Вот что происходит, когда я копирую пасту из своей IDE:

enter image description here

Когда цвет изменяется, следующие входные записи сохраняют те же цвета до следующего копирования / вставки.

Как можно избежать использования QTextEdit что-нибудь кроме цветов по умолчанию (черный текст, белый фон)?

1 Ответ

1 голос
/ 18 марта 2020

QTextData имеет свойство acceptRichText.

Просто установите для него значение True.


QTextEdit позволяет использовать форматированный текст, а если источник, из которого вы получаете текст, поддерживает форматированный текст для буфера обмена, вы получите это.
Чтобы избежать такого поведения, вы можете создать подкласс QTextEdit и переопределить 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...