Как установить видимость для текстовых блоков в QTextEdit? - PullRequest
1 голос
/ 23 апреля 2010

Я пытался скрыть текстовые блоки в QTextEdit, но это не работает:

block = textedit.document().begin()
block.setVisible(False)

Этот код отлично работает для QPlainTextEdit, но не для QTextEdit. В документации я не нашел упоминаний о том, как это должно работать для QTextEdit, просто следую:

void QTextBlock :: setVisible (bool visible) Устанавливает видимость блока до видимого.

Эта функция была введена в Qt 4.4.

См. Также isVisible ().

Как я могу скрыть блоки в QTextEdit?

Заранее спасибо

1 Ответ

1 голос
/ 28 апреля 2010

Я подтвердил поведение, которое вы описываете. Кроме того, я подтвердил, что в приведенном вами коде после метода setVisible видимость блока действительно ложна.

Итак, самое ясное объяснение, которое я вижу, таково: QPlainTextEdit не наследуется от QTextEdit. Они оба наследуются от QScrollableArea, и я могу только предположить, что QTextEdit не учитывает видимость блоков его документа. В документах, используемых QPlainTextEdit, используются объекты QPlainTextLayout, а в QTextEdit есть что-то еще, что я не могу определить.

Итак ... Я не уверен, что это можно сделать так, как вы собираетесь. Одна альтернатива - фильтровать текст до того, как попадет в QTextEdit, и Python хорошо подходит для этой задачи.

self.paragraphs = ["First paragraph","Second Paragraph","Third Paragraph",]
self.display_text = '\n'.join(self.paragraphs[1:])
self.textedit.setText(self.display_text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...