Здравствуйте, гость ( Вход | Регистрация )
Litkevich Yuriy | Дата 1.3.2011, 17:42 |
перешел от системы "hide()-show()" к QStackedWidget ну если причину понять интересно, то попробуй поковырять исходники QStackedWidget, может быстро найдёшь корень проблемы. |
|
mezmay | Дата 1.3.2011, 15:48 |
В основной программе тоже заработало корректное сохранение скрытого виджета после того как я перешел от системы "hide()-show()" к QStackedWidget | |
Rocky | Дата 1.3.2011, 15:14 |
Выложи архив проекта тогда. Сейчас не создать. Ну или посмотри что выдает web->rect()? Я раньше делал с ->geometry(), проблем не было. Попрбуй поиграться с ректами чисто (->geometry() и т.п. ). | |
mezmay | Дата 1.3.2011, 15:11 |
Блин, в этом примере ошибка. надо вместо
было написать
После этого заработало корректное сохранение для всех случаев, в том числе и для карты. Почему оно не работает в моей основной программе - надо разбираться. Пока что думаю что из-за того что у меня в одном лейауте 2 виджета которые по очереди отображаются... |
|
abc | Дата 1.3.2011, 14:24 |
дык у тебя скролингов нет, реальная картинка - та, что сграбилась | |
mezmay | Дата 1.3.2011, 14:18 |
Написал простой тестовый пример: Раскрывающийся текст файл cwin.h
файл cwin.cpp
файл cmyweb.h
файл cmyweb.cpp
В этот раз сохранение с hide()'ом и без hide()'a дало одинаковый результат, причем непонятный. Смотрите два приложенных файла, первый - то что реально отображается, второй - то что грабится. Грабится почему-то больше)... Здесь почему-то получилось безо всяких смещений, но сохраняемое изображение все равно не соответствует отображаемому |
|
Rocky | Дата 28.2.2011, 19:34 |
проверял, при hide()'e resizeEvent() не вызывается. Он и не должен вызываться. 1. Зачем делать hide для того чтобы потом сграбить? Или, если есть такая необходимость, пробовал ли грабить _не_ делая hide? 2. m_maps[!m_bMap]->rect() - какие тут координаты? Выводи в qDebug, потом делай скриншот сам через внешнюю прогу, проверяй те ли координаты берутся (только ничего не смещай при этом). 3. Попробуй делать декомпозицию: написать тествый пример с минимум всего, что нужно для загрузки карты и дальнейшего grab-а. Возможно даже вообще без карт. А просто самый обычный рисунок грузи. Да хотя и рисунок не нужен. QWebView + любой сайт + hide + grabWidget. Таких чудес в принципе не бывает. 4. Скриншоты чтобы (возможно) понять нужны полностью всего содержимого окна программы в случае когда сам грабиш, и в случае когда это делает printscreen. Иначе вообще непонятно что куда и на сколько смещено. |
|
mezmay | Дата 28.2.2011, 17:46 |
Без QRect то же самое | |
kwisp | Дата 28.2.2011, 17:25 |
В CMapWidget лейаут, в нем поочередно отображаются или класс Google карты или класс Yandex карты. (Одному делается hide(), другому - show()): этот функционал уже есть в QStackedWidget(Layout) и зачем ты указываешь QRect ? без него пробовал? |
|
mezmay | Дата 28.2.2011, 17:04 |
В CMapWidget лейаут, в нем поочередно отображаются или класс Google карты или класс Yandex карты. (Одному делается hide(), другому - show()):
прилагаются файлы: 1.jpg, 2.jpg - пример некорректного сохранения 3.jpg - как должно было бы сохраняться |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 28.3.2024, 13:32 |