crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

piton
  опции профиля:
сообщение 29.9.2009, 13:11
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 29.9.2009
Пользователь №: 1125

Спасибо сказали: 0 раз(а)




Репутация:   0  


Предисловие: есть движок, в котором реализованы мультимедиа объекты (картинки, видео, текст и т.д.) и их управление (загрузка, отрисовка, размещение на окне). Все объекты выводятся на окно в зависимости от их глубины (depth) размещения, т.е. объекты могут друг на друга наезжать и частично или полностью перекрывать друг друга. Все это дело должно работать как под виндой, так и под линуксами. Было принято решение использовать QT в качестве реализации главного окна и обработки мышиных и клавиатурных сообщений.

Сама суть: нужен ввод с клавиатуры в текстовое поле. В качестве эксперимента был взят класс QTextEdit. В принципе в нем все устраивает, за исключением одного момента: это отрисовка в буфер. Снять копию с виджета и поместить ее в тот же QImage не составляет труда, но нельзя запретить виджету рисоваться куда ему захочется. Под виндой это решалось просто, путем сабклассинга и подсовывание своего контекста рисования. В QT я не нашел способа подсунуть свой контекст для отрисовки. QT настырно продолжает рисовать на свой контекст. Пробовал переопределять функции, связанные с рисованием, но в QT они носят чисто информационный характер, т.е. как состоявшийся факт "я отрисовалась и если хочешь, можешь ты еще чего поверх нарисовать". Цель состоит в том, что бы можно было поле для ввода текста использовать от QT и при этом рисовать самому, перемешивая с другими объектами.

Вопрос: возможно ли запретить виджету рисоваться куда ему захочется или дать виджету свой контекст для рисования и он сам туда рисовался, при этом не использовал контекст рисования родительского окна (фактически единственного окна)?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- piton   Отрисовка стандартного виджета на буфер   29.9.2009, 13:11
- - rnd   наследуйтесь и переопределите QTextEdit::paintEven...   29.9.2009, 14:23
|- - piton   Цитата(rnd @ 29.9.2009, 15:23) наследуйте...   29.9.2009, 14:27
- - ViGOur   Цитата(piton @ 29.9.2009, 15:27) Пробовал...   29.9.2009, 15:10
|- - piton   Цитата(ViGOur @ 29.9.2009, 16:10) Цитата(...   29.9.2009, 15:42
- - Litkevich Yuriy   Цитата(piton @ 29.9.2009, 18:27) Эта функ...   29.9.2009, 15:46
|- - piton   Цитата(Litkevich Yuriy @ 29.9.2009, 16:46...   29.9.2009, 16:15
- - Litkevich Yuriy   Цитата(piton @ 29.9.2009, 20:15) отрисова...   29.9.2009, 16:27
|- - piton   Цитата(Litkevich Yuriy @ 29.9.2009, 17:27...   29.9.2009, 16:54
|- - BRE   Цитата(piton @ 29.9.2009, 17:54) сторонни...   29.9.2009, 17:05
|- - piton   Цитата(BRE @ 29.9.2009, 18:05) Думаю стои...   29.9.2009, 17:16
|- - BRE   Цитата(piton @ 29.9.2009, 18:08) Я так и ...   29.9.2009, 17:23
- - rnd   Самое просто в таких случаях - смотреть исходники ...   29.9.2009, 17:33
|- - piton   Цитата(rnd @ 29.9.2009, 18:33) Самое прос...   30.9.2009, 13:02
- - Litkevich Yuriy   piton, тут меня одна мыслишка посетила. Значится б...   29.9.2009, 17:59
- - BRE   2 piton Перечитал первый пост темы и у меня возни...   29.9.2009, 19:02


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 12.6.2025, 11:38