grabWidget скрытого виджета, некорректно грабится |
Здравствуйте, гость ( Вход | Регистрация )
grabWidget скрытого виджета, некорректно грабится |
mezmay |
28.2.2011, 12:17
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Есть виджет (QWebView) , в него загружена картинка. Делаю этому виджету hide() (он в лейауте, если это важно), а потом QPixmap::grabWidget(). В результате pixmap содержит только половину положенного изображения - вторая половина серая. Почему?
|
|
|
kwisp |
28.2.2011, 12:40
Сообщение
#2
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
|
|
|
mezmay |
28.2.2011, 13:23
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
проверял, при hide()'e resizeEvent() не вызывается.
Уточню - не просто половина серая, а виджет как бы смещается на половину своей высоты вверх... Сообщение отредактировал mezmay - 28.2.2011, 13:25 |
|
|
kwisp |
28.2.2011, 15:57
Сообщение
#4
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
|
|
|
mezmay |
28.2.2011, 17:04
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
В CMapWidget лейаут, в нем поочередно отображаются или класс Google карты или класс Yandex карты.
(Одному делается hide(), другому - show()):
прилагаются файлы: 1.jpg, 2.jpg - пример некорректного сохранения 3.jpg - как должно было бы сохраняться |
|
|
kwisp |
28.2.2011, 17:25
Сообщение
#6
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
|
|
|
mezmay |
28.2.2011, 17:46
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Без QRect то же самое
|
|
|
Rocky |
28.2.2011, 19:34
Сообщение
#8
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
проверял, при 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 |
1.3.2011, 14:18
Сообщение
#9
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Написал простой тестовый пример:
Раскрывающийся текст файл cwin.h
файл cwin.cpp
файл cmyweb.h
файл cmyweb.cpp
В этот раз сохранение с hide()'ом и без hide()'a дало одинаковый результат, причем непонятный. Смотрите два приложенных файла, первый - то что реально отображается, второй - то что грабится. Грабится почему-то больше)... Здесь почему-то получилось безо всяких смещений, но сохраняемое изображение все равно не соответствует отображаемому |
|
|
abc |
1.3.2011, 14:24
Сообщение
#10
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
дык у тебя скролингов нет, реальная картинка - та, что сграбилась
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 16:54 |