![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
mezmay |
![]()
Сообщение
#1
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: ![]() ![]() ![]() |
Есть виджет (QWebView) , в него загружена картинка. Делаю этому виджету hide() (он в лейауте, если это важно), а потом QPixmap::grabWidget(). В результате pixmap содержит только половину положенного изображения - вторая половина серая. Почему?
|
|
|
![]() |
kwisp |
![]()
Сообщение
#2
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
mezmay |
![]()
Сообщение
#3
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: ![]() ![]() ![]() |
проверял, при hide()'e resizeEvent() не вызывается.
Уточню - не просто половина серая, а виджет как бы смещается на половину своей высоты вверх... Сообщение отредактировал mezmay - 28.2.2011, 13:25 |
|
|
kwisp |
![]()
Сообщение
#4
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
mezmay |
![]()
Сообщение
#5
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: ![]() ![]() ![]() |
В CMapWidget лейаут, в нем поочередно отображаются или класс Google карты или класс Yandex карты.
(Одному делается hide(), другому - show()):
прилагаются файлы: 1.jpg, 2.jpg - пример некорректного сохранения 3.jpg - как должно было бы сохраняться
Эскизы прикрепленных изображений
|
|
|
kwisp |
![]()
Сообщение
#6
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
mezmay |
![]()
Сообщение
#7
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: ![]() ![]() ![]() |
Без QRect то же самое
|
|
|
Rocky |
![]()
Сообщение
#8
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
проверял, при hide()'e resizeEvent() не вызывается. Он и не должен вызываться. 1. Зачем делать hide для того чтобы потом сграбить? Или, если есть такая необходимость, пробовал ли грабить _не_ делая hide? 2. m_maps[!m_bMap]->rect() - какие тут координаты? Выводи в qDebug, потом делай скриншот сам через внешнюю прогу, проверяй те ли координаты берутся (только ничего не смещай при этом). 3. Попробуй делать декомпозицию: написать тествый пример с минимум всего, что нужно для загрузки карты и дальнейшего grab-а. Возможно даже вообще без карт. А просто самый обычный рисунок грузи. Да хотя и рисунок не нужен. QWebView + любой сайт + hide + grabWidget. Таких чудес в принципе не бывает. 4. Скриншоты чтобы (возможно) понять нужны полностью всего содержимого окна программы в случае когда сам грабиш, и в случае когда это делает printscreen. Иначе вообще непонятно что куда и на сколько смещено. Сообщение отредактировал Rocky - 28.2.2011, 19:37 |
|
|
mezmay |
![]()
Сообщение
#9
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: ![]() ![]() ![]() |
Написал простой тестовый пример:
Раскрывающийся текст файл cwin.h
файл cwin.cpp
файл cmyweb.h
файл cmyweb.cpp
В этот раз сохранение с hide()'ом и без hide()'a дало одинаковый результат, причем непонятный. Смотрите два приложенных файла, первый - то что реально отображается, второй - то что грабится. Грабится почему-то больше)... Здесь почему-то получилось безо всяких смещений, но сохраняемое изображение все равно не соответствует отображаемому
Эскизы прикрепленных изображений
|
|
|
abc |
![]()
Сообщение
#10
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
дык у тебя скролингов нет, реальная картинка - та, что сграбилась
|
|
|
mezmay |
![]()
Сообщение
#11
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: ![]() ![]() ![]() |
Блин, в этом примере ошибка.
надо вместо
было написать
После этого заработало корректное сохранение для всех случаев, в том числе и для карты. Почему оно не работает в моей основной программе - надо разбираться. Пока что думаю что из-за того что у меня в одном лейауте 2 виджета которые по очереди отображаются... |
|
|
Rocky |
![]()
Сообщение
#12
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
Выложи архив проекта тогда. Сейчас не создать. Ну или посмотри что выдает web->rect()? Я раньше делал с ->geometry(), проблем не было. Попрбуй поиграться с ректами чисто (->geometry() и т.п. ).
|
|
|
mezmay |
![]()
Сообщение
#13
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: ![]() ![]() ![]() |
В основной программе тоже заработало корректное сохранение скрытого виджета после того как я перешел от системы "hide()-show()" к QStackedWidget
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#14
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 26.6.2025, 6:38 |