Я не знаю, сделано это приложение из Qt или нет, но у меня есть идея.
Возможно, вы сделали большую часть этого приложения ... Я не знаю их по вашему вопросу. Я пишу свое мнение, исходя из того, что вы вообще не знаете, как обрабатывать QText.
QTextEdit
, QTextDocument
, QTextCursor
используются полностью.
1. Чтобы понять блок .
2.Для использования QTextBlockUserData
(если хотите.)
3.Чтобы использовать QGraphicsItem
в качестве узлов.
4. Чтобы перейти на другую страницу, мы добавляем новый QTextEdit
на QStackedWidget
или заменяем QTextDocument
из QTextEdit
.
5.Чтобы сделать блок подузлов, вы можете координировать отступ блоков.
QTextBlock
- это данные только для чтения в документе.
Вы делаете QTextBlockUserData
и устанавливаете его в блок.
Если вы выбираете несколько блоков, которые хотите перетаскивать, вы используете QTextCursor
и movePosition
методы с последовательностью.
Узлы этого приложения не могут быть QTextListFormat
, потому что мы не можем обрабатывать щелчок мыши по стилю. Но вы можете вставить пустой стиль QTextListFormat
.
Истина узлов может быть QGraphicsItem
.
Вы можете назначить его каждой начальной позиции блоков, и элемент также может иметь данные блока.
Трудно позаботиться о связи между узлами и блоками.
Заранее необходимо установить QGraphicsView
& QGraphicsScene
.
Я вставляю много данных в контейнер.
Что мы должны контролировать с помощью узлов или блока?
Моя пробная версия .
1.Ноды и текст
2. На другую страницу
3.Суб-узлы и блоки
4.Закрыть подузлы и блоки
Мое испытание не завершено, но оно будет завершено с выдержкой.
Логично, я думаю, что смогу пойти на шаг с этими комбинациями до хорошего момента.
Но это будет трудно ...
Эти узлы сделаны из QGraphicsItem и размещены в каждом блоке.
Вы должны рассчитать положение и пересчитать во время редактирования.
Изображение курсора мыши на этих изображениях удалено.
Это странный скриншот.