Russian Qt Forum
Ноябрь 23, 2024, 08:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сохранение картинки.  (Прочитано 6166 раз)
Modest
Гость
« : Январь 24, 2011, 22:42 »

Здравствуйте!
Я совсем новичек в работе с Qt.
Возник такой вопрос - как сохранить нарисованную картинку.
Вот код:

Код
C++ (Qt)
Q3Picture picture;
QPainter painter10(this);
painter10.begin(&picture);
painter10.setPen(QPen(Qt::darkRed, 2));
painter10.drawLine(0, 10, 10, 200);                  //Рисуем картинку из
painter10.drawLine(104, 10, 200, 200);             //2х линий
painter10.end();
picture.save("drawing.jpg");                           //сохраняем её

Итогом имеем картинку без изображения.
Что делаю не так? Почему сохраняет пустую картинку?
Спасибо за внимание.
« Последнее редактирование: Январь 24, 2011, 23:18 от pastor » Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Январь 24, 2011, 23:17 »

Код
C++ (Qt)
QPixmap picture(400, 400);
QPainter painter10;
painter10.begin(&picture);
painter10.setPen(QPen(Qt::darkRed, 2));
painter10.drawLine(0, 10, 10, 200);
painter10.drawLine(104, 10, 200, 200);
painter10.end();
 
picture.save("drawing.jpg");
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Modest
Гость
« Ответ #2 : Январь 24, 2011, 23:26 »

Спасибо!!! Работает!!!
Записан
Fess
Гость
« Ответ #3 : Январь 25, 2011, 18:16 »

Насколько я помню QPixmap можно напрямую передавать в конструктор QPainter, ибо это тоже IODevice
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #4 : Январь 25, 2011, 18:32 »

Можно
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
alexman
Гость
« Ответ #5 : Январь 25, 2011, 18:33 »

И end можно не вызывать!
Записан
Fat-Zer
Гость
« Ответ #6 : Январь 25, 2011, 18:36 »

только если положиться на деструктор...
Записан
alexman
Гость
« Ответ #7 : Январь 25, 2011, 18:52 »

только если положиться на деструктор...
end в деструкторе вызывается. Из Qt Assistant:
Цитировать
The constructor calls begin() for you and the QPainter destructor automatically calls end().
« Последнее редактирование: Январь 25, 2011, 18:55 от alexman » Записан
Fat-Zer
Гость
« Ответ #8 : Январь 25, 2011, 19:00 »

я к тому, чтобы не забывать вызывать end() (и delete при необходимости), если painter в куче лежит...
Записан
alexman
Гость
« Ответ #9 : Январь 25, 2011, 21:27 »

я к тому, чтобы не забывать вызывать end() (и delete при необходимости), если painter в куче лежит...
Заход из далека)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.086 секунд. Запросов: 23.