Здравствуйте, гость ( Вход | Регистрация )
piton | Дата 30.9.2009, 13:02 |
Самое просто в таких случаях - смотреть исходники куте и дебажится Дебажили, откуда и поняли, что QT рисует на главное окно само. piton, тут меня одна мыслишка посетила. Значится баловался я QWebClient'ом, который сделал Мортен в лаборатории тролей. Смысл его простой, вместо корневого виджета в своей программе, например, QWidget, устанавливаешь QWebClient. Компилируешь и запускашь. Открываешь браузер и вводишь адрес: http://localhost:1818 и видешь в браузере свою программу (и она работает). Вот мой скрин с использованием QWT Суть мысли: я заметил, что работает это так: запускашь свою программу, появляется её окно, но как только ты в браузере обращаешся к ней. Окно обычное исчезает. Стало бвть рисование проболжается не на окошке. Может там почерпнёшь, чтони-будь интересное? Сейчас почитаем, потом отпишу о результатах. 2 piton Перечитал первый пост темы и у меня возник вопрос, а почему для всего этого не использовать QGraphicsView+QGraphicsScene. Эта связка и обеспечивает необходимый функционал. Глубина элементов есть, виджет на сцену поместить можно. Для этого надо переделать все, а проект уже идет не первый год. Может в следующих версиях на этом и будем основываться. |
|
BRE | Дата 29.9.2009, 19:02 |
2 piton Перечитал первый пост темы и у меня возник вопрос, а почему для всего этого не использовать QGraphicsView+QGraphicsScene. Эта связка и обеспечивает необходимый функционал. Глубина элементов есть, виджет на сцену поместить можно. |
|
Litkevich Yuriy | Дата 29.9.2009, 17:59 |
piton, тут меня одна мыслишка посетила. Значится баловался я QWebClient'ом, который сделал Мортен в лаборатории тролей. Смысл его простой, вместо корневого виджета в своей программе, например, QWidget, устанавливаешь QWebClient. Компилируешь и запускашь. Открываешь браузер и вводишь адрес: http://localhost:1818 и видешь в браузере свою программу (и она работает). Вот мой скрин с использованием QWT Суть мысли: я заметил, что работает это так: запускашь свою программу, появляется её окно, но как только ты в браузере обращаешся к ней. Окно обычное исчезает. Стало бвть рисование проболжается не на окошке. Может там почерпнёшь, чтони-будь интересное? |
|
rnd | Дата 29.9.2009, 17:33 |
Самое просто в таких случаях - смотреть исходники куте и дебажится | |
BRE | Дата 29.9.2009, 17:23 |
Я так и не смог найти какого-либо примера или информации как это можно сделать. Хвостов у виджета в сторону QPaintEngine тоже не обнаружил. Если есть какие либо мысли, с удовольствие выслушаю. Мысль следующая.... Любой виджет это QPaintDevice, в начале рисования он создает QPainter, которому указывает себя в качестве поверхности для рисования. Этот вызов идет в QPaintEngine::begin( QPaintDevice * pdev ). Это виртуальный метод, если его переопределить, то можно попробовать использовать вместо pdev свое устройство отображения. Это только мысли. |
|
piton | Дата 29.9.2009, 17:16 |
Думаю стоит смотреть в сторону QPaintEngine, и делать своего наследника... Я так и не смог найти какого-либо примера или информации как это можно сделать. Хвостов у виджета в сторону QPaintEngine тоже не обнаружил. Если есть какие либо мысли, с удовольствие выслушаю. Думаю стоит смотреть в сторону QPaintEngine, и делать своего наследника... Я так и не смог найти какого-либо примера или информации как это можно сделать. Хвостов у виджета в сторону QPaintEngine тоже не обнаружил. Если есть какие либо мысли, с удовольствие выслушаю. |
|
BRE | Дата 29.9.2009, 17:05 |
сторонний - все что угодно, только не главное окно на контекст - HDC, QImage, QPixmap и т.д. Думаю стоит смотреть в сторону QPaintEngine, и делать своего наследника... |
|
piton | Дата 29.9.2009, 16:54 |
отрисовать на сторонний контекст? я честно говоря не совсем понимаю, что значит на сторонний. И что значит на контекст, на чём-то другом кроме экрана?Если так то можно посмотреть в сторону QImage. В QT все объекты рисуются на главное окно. Мне надо что бы виджет (QTextEdit) рисовался, скажем. на QImage и только на него, что бы виджет не рисовался на главное окно. Я знаю как рисовать на QImage, но при этом видже одновременно рисуется на главное окно. Если его скрывать или убирать за пределы окна, то он тупо перестает рисоваться, даже на QImage. сторонний - все что угодно, только не главное окно на контекст - HDC, QImage, QPixmap и т.д. |
|
Litkevich Yuriy | Дата 29.9.2009, 16:27 |
отрисовать на сторонний контекст? я честно говоря не совсем понимаю, что значит на сторонний. И что значит на контекст, на чём-то другом кроме экрана?Если так то можно посмотреть в сторону QImage. |
|
piton | Дата 29.9.2009, 16:15 |
Эта функция вызывается когда виджет уже отрисовался нет, только когда он хочет рисоваться.Хорошо.
Может есть возможность во время paintEvent(...) снимать копию изображения с виджета или говорить ему что надо отрисовать на сторонний контекст? Ещё можешь почитать про технологию "Мужик", как мы её окрестили Спасибо за пример. Но немного не по моей теме. . Может и ошибаюсь.... |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 20.4.2024, 0:10 |