Текстовый редактор Qt на картинке - PullRequest
1 голос
/ 10 марта 2012

Я не нашел точного вопроса по этому вопросу.

У меня есть картинка, она может быть пустой для примера или содержать что-то, к чему я хочу добавить необычную подпись.Я хочу добавить средство редактирования текста (похожее на Photoshop) поверх рисунка.

Я думаю о создании подкласса QGraphicsScene и размещении объекта подкласса QTextEdit на сцене после нажатия кнопки размещения текста,Затем, когда вы нажимаете на этот объект, в дополнение к редактированию текста становятся доступными дополнительные инструменты редактирования текста - так что вы можете установить части текста жирным шрифтом, курсивом, изменить цвет, размер и т. Д. И тогда вы сможете изменитьположение объекта - и я думаю, что это доступно в QGraphicsScene по умолчанию.А для фона QBrush будет фоновая картинка.

Это разумное решение?

Может быть, есть какие-нибудь готовые примеры этого, но я не нашелих пока.

1 Ответ

1 голос
/ 15 марта 2012

Мое решение

Текстовая позиция: Для текстового элемента я использовал QGraphicsScene с подклассом QGraphicsTextItem. Для фонового изображения я использовал QGraphicsRectItem с QBrush и загруженное изображение с использованием QImage методов.

Чтобы редактировать части выделенного текста в этом подклассе QGraphicsTextItem: QTextCharFormat применяется к моему подклассу QGraphicsTextItem с использованием QGraphicsTextItem::textCursor().mergeCharFormat(...). Таким образом, я могу изменить форматирование, например жирность, курсив и т. Д., Только для выделения.

Еще несколько штук: Для панорамирования и масштабирования сцены я использовал превосходное руководство Vpicaver с исходным кодом http://www.qtcentre.org/wiki/index.php?title=QGraphicsView:_Smooth_Panning_and_Zooming

...