crossplatform.ru

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Отрисовка стандартного виджета на буфер
piton
  опции профиля:
сообщение 29.9.2009, 17:16
Сообщение #11


Новичок


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

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




Репутация:   0  


Цитата(BRE @ 29.9.2009, 18:05) *
Думаю стоит смотреть в сторону QPaintEngine, и делать своего наследника...


Я так и не смог найти какого-либо примера или информации как это можно сделать. Хвостов у виджета в сторону QPaintEngine тоже не обнаружил. :(
Если есть какие либо мысли, с удовольствие выслушаю.

Цитата(BRE @ 29.9.2009, 18:05) *
Думаю стоит смотреть в сторону QPaintEngine, и делать своего наследника...


Я так и не смог найти какого-либо примера или информации как это можно сделать. Хвостов у виджета в сторону QPaintEngine тоже не обнаружил. :(
Если есть какие либо мысли, с удовольствие выслушаю.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 29.9.2009, 17:23
Сообщение #12


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(piton @ 29.9.2009, 18:08) *
Я так и не смог найти какого-либо примера или информации как это можно сделать. Хвостов у виджета в сторону QPaintEngine тоже не обнаружил. :(
Если есть какие либо мысли, с удовольствие выслушаю.

Мысль следующая....
Любой виджет это QPaintDevice, в начале рисования он создает QPainter, которому указывает себя в качестве поверхности для рисования. Этот вызов идет в QPaintEngine::begin( QPaintDevice * pdev ). Это виртуальный метод, если его переопределить, то можно попробовать использовать вместо pdev свое устройство отображения.

Это только мысли.

Сообщение отредактировал BRE - 29.9.2009, 18:13
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rnd
  опции профиля:
сообщение 29.9.2009, 17:33
Сообщение #13


Студент
*

Группа: Участник
Сообщений: 54
Регистрация: 22.7.2009
Пользователь №: 930

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




Репутация:   0  


Самое просто в таких случаях - смотреть исходники куте и дебажится
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 29.9.2009, 17:59
Сообщение #14


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


piton, тут меня одна мыслишка посетила. Значится баловался я QWebClient'ом, который сделал Мортен в лаборатории тролей.
Смысл его простой, вместо корневого виджета в своей программе, например, QWidget, устанавливаешь QWebClient. Компилируешь и запускашь.
Открываешь браузер и вводишь адрес: http://localhost:1818 и видешь в браузере свою программу (и она работает). Вот мой скрин с использованием QWT

Суть мысли:
я заметил, что работает это так: запускашь свою программу, появляется её окно, но как только ты в браузере обращаешся к ней. Окно обычное исчезает. Стало бвть рисование проболжается не на окошке.

Может там почерпнёшь, чтони-будь интересное?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 29.9.2009, 19:02
Сообщение #15


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


2 piton

Перечитал первый пост темы и у меня возник вопрос, а почему для всего этого не использовать QGraphicsView+QGraphicsScene. Эта связка и обеспечивает необходимый функционал. Глубина элементов есть, виджет на сцену поместить можно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
piton
  опции профиля:
сообщение 30.9.2009, 13:02
Сообщение #16


Новичок


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

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




Репутация:   0  


Цитата(rnd @ 29.9.2009, 18:33) *
Самое просто в таких случаях - смотреть исходники куте и дебажится

Дебажили, откуда и поняли, что QT рисует на главное окно само.

Цитата(Litkevich Yuriy @ 29.9.2009, 18:59) *
piton, тут меня одна мыслишка посетила. Значится баловался я QWebClient'ом, который сделал Мортен в лаборатории тролей.
Смысл его простой, вместо корневого виджета в своей программе, например, QWidget, устанавливаешь QWebClient. Компилируешь и запускашь.
Открываешь браузер и вводишь адрес: http://localhost:1818 и видешь в браузере свою программу (и она работает). Вот мой скрин с использованием QWT

Суть мысли:
я заметил, что работает это так: запускашь свою программу, появляется её окно, но как только ты в браузере обращаешся к ней. Окно обычное исчезает. Стало бвть рисование проболжается не на окошке.

Может там почерпнёшь, чтони-будь интересное?

Сейчас почитаем, потом отпишу о результатах.

Цитата(BRE @ 29.9.2009, 20:02) *
2 piton

Перечитал первый пост темы и у меня возник вопрос, а почему для всего этого не использовать QGraphicsView+QGraphicsScene. Эта связка и обеспечивает необходимый функционал. Глубина элементов есть, виджет на сцену поместить можно.

Для этого надо переделать все, а проект уже идет не первый год. Может в следующих версиях на этом и будем основываться.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 20.4.2024, 10:14