Вызов find() для подкласса сбоев QPlainTextEdit

У меня есть подкласс QPlainTextEdit, который имеет странную ошибку. Класс довольно прост, он просто добавляет опцию Find и может сохранить его содержимое в файл и некоторые другие мелочи. Соответствующий код выглядит так:

class EditFile(QtWidgets.QPlainTextEdit):

    ...

    def find(self, target):
         print(target)
         # This line causes a crash:
         super(EditFile, self).find(target)

find() Метод печатает целевую строку, а затем он падает.

Это работало нормально под PySide и Python 2.7. Я перешел на PyQt и Python 3.7, и вот тогда он сломался.

Моя первая теория состояла в том, что target должен быть QString, а не str (хотя мне сказали, что str может функционировать как QString). Но я обнаружил, что совершенно не могу создать QString (разве он не должен быть доступен в QtCore? Я получил сообщение "qtpy.QtCore не имеет атрибута QString."). Мне удалось создать QRegExp, но прохождение, которое также вызвало сбой.

Я попытался добавить аргумент позиции к вызову, но он также потерпел крах.

В качестве эксперимента я попытался вызвать некоторые другие методы QPlainTextEdit. Большинство из них работали нормально, но я получил сообщение об ошибке acceptRichText(), в котором говорилось, что он не определен для суперкласса.

0 ответов

Другие вопросы по тегам