Отрисовка виджета в QPixmap |
Здравствуйте, гость ( Вход | Регистрация )
Отрисовка виджета в QPixmap |
giker |
29.10.2010, 21:39
Сообщение
#1
|
Студент Группа: Участник Сообщений: 26 Регистрация: 18.5.2010 Пользователь №: 1731 Спасибо сказали: 0 раз(а) Репутация: 0 |
Добрый день. Помогите пожалуйста. Есть виджет (qwtPlot) который надо отрисовывать в QPixmap используя QGraphicsView. Для отрисовки использую такой код:
В результате на диске появляется файл, по виду нужного размера, но абсолютно черный. Что в моем коде неправильно, или здесь проблема в специфике qwt? Спасибо. |
|
|
Алексей1153 |
29.10.2010, 21:51
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
попробуй убрать
painter.begin(&pixmap); либо же не указывай в конструкторе адрес девайса (там begin вызовется) вызов end тоже можно оставить на совесть деструктора:
|
|
|
giker |
29.10.2010, 22:31
Сообщение
#3
|
Студент Группа: Участник Сообщений: 26 Регистрация: 18.5.2010 Пользователь №: 1731 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ни каких изменений - опять абсолютно черный файл.
|
|
|
Алексей1153 |
29.10.2010, 22:47
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
хорошо. Делаем чистый эксперимент:
зелёный прямоугольничек есть ? |
|
|
giker |
29.10.2010, 23:14
Сообщение
#5
|
Студент Группа: Участник Сообщений: 26 Регистрация: 18.5.2010 Пользователь №: 1731 Спасибо сказали: 0 раз(а) Репутация: 0 |
Есть.
|
|
|
Алексей1153 |
30.10.2010, 8:53
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
giker, значит что ? По умолчанию девайс залит чёрным цветом. Поэтому не видно, что ты на нём нарисовал чёрными линиями/буквами
Сообщение отредактировал Алексей1153 - 30.10.2010, 8:54 |
|
|
giker |
31.10.2010, 8:29
Сообщение
#7
|
Студент Группа: Участник Сообщений: 26 Регистрация: 18.5.2010 Пользователь №: 1731 Спасибо сказали: 0 раз(а) Репутация: 0 |
Хорошо, тогда по идее, если сначала залить весь pixmap белым цветом, а потом отрисовать виджет, то мы должны его увидеть:
Но в результате имеем только картинку полностью залитую белым цветом. Но у виджета кроме черных линий есть еще и фон совпадающий с цветом окна, он же дожен отрисоваться? Значит не правильно отрабатывает view->render(&painter)? |
|
|
Алексей1153 |
31.10.2010, 10:43
Сообщение
#8
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
giker, значит, view->render не изменяет картинку, правильно. Почему - я не знаю Покажи рисовалку вьюхи
|
|
|
giker |
31.10.2010, 12:41
Сообщение
#9
|
Студент Группа: Участник Сообщений: 26 Регистрация: 18.5.2010 Пользователь №: 1731 Спасибо сказали: 0 раз(а) Репутация: 0 |
В смысле рисовалку? qwtPlot это виджет типа QwtPlot из билиотеки Qwt, существующий и уже отображенный на основной форме приложения, на его месте может быть любой контрол расположенный на форме. Кстати заметил, что если я создаю кнопку в коде (то есть ее нет на форме), то она замечательно отрисовывается в файле:
Это говорит о том, что уже отображенный где-то виджет нельзя отобразить повторно на QGraphicsScene/QGraphicsView? |
|
|
Алексей1153 |
31.10.2010, 12:57
Сообщение
#10
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
giker, я не знаю, с чем это связано. Может быть, размер у вьюхи нулевой ? Попробуй принудительно размер задать какой-нибудь
|
|
|
Текстовая версия | Сейчас: 27.12.2024, 21:08 |