Класс QPicture
Класс QPicture — это устройство рисования, которое записывает и воспроизводит команды QPainter. Подробнее...
| Заголовок: | #include <QPicture> |
| qmake: | QT += gui |
| Наследуется от: | QPaintDevice |
Открытые функции
| QPicture(const QPicture &pic) | |
| QPicture(int formatVersion = -1) | |
| QPicture & | operator=(QPicture &&other) |
| QPicture & | operator=(const QPicture &p) |
| virtual | ~QPicture() |
| QRect | boundingRect() const |
| const char * | data() const |
| bool | isNull() const |
| bool | load(const QString &fileName, const char *format = nullptr) |
| bool | load(QIODevice *dev, const char *format = nullptr) |
| bool | play(QPainter *painter) |
| bool | save(const QString &fileName, const char *format = nullptr) |
| bool | save(QIODevice *dev, const char *format = nullptr) |
| void | setBoundingRect(const QRect &r) |
| virtual void | setData(const char *data, uint size) |
| uint | size() const |
| void | swap(QPicture &other) |
Связанные нечлены
| QDataStream & | operator<<(QDataStream &s, const QPicture &r) |
| QDataStream & | operator>>(QDataStream &s, QPicture &r) |
Подробное описание
Объект QPicture сериализует команды рисования в устройство ввода/вывода в платформонезависимом формате. Иногда они называются метафайлами.
Qt использует собственный двоичный формат. В отличие от собственных форматов изображений (метафайлов) на многих системных платформах, Qt-картинки не имеют ограничений по содержанию. Всё, что можно нарисовать на виджете или пиксельном изображении (например, шрифты, пиксельные изображения, области, преобразованные графики и т. д.) также можно сохранить в картинке.
QPicture не зависит от разрешения, т. е. QPicture может отображаться на разных устройствах (например, svg, pdf, ps, принтер и экран), выглядя одинаково. Это, например, необходимо для предварительного просмотра печати WYSIWYG. QPicture работает с заданным разрешением системы, и масштабирует рисование, чтобы соответствовать различиям в разрешении в зависимости от системной платформы.
Пример того, как записать картинку:
QPicture picture;
QPainter painter;
painter.begin(&picture); // paint in picture
painter.drawEllipse(10,20, 80,70); // draw an ellipse
painter.end(); // painting done
picture.save("drawing.pic"); // save picture Обратите внимание, что список команд рисования сбрасывается при каждом вызове функции QPainter::begin().
Пример того, как воспроизвести картинку:
QPicture picture;
picture.load("drawing.pic"); // load picture
QPainter painter;
painter.begin(&myImage); // paint in myImage
painter.drawPicture(0, 0, picture); // draw the picture at (0,0)
painter.end(); // painting done Изображения также можно отобразить с помощью play(). Доступны некоторые основные данные о картинке, например, size(), isNull() и boundingRect().
См. также QMovie.
Документация по функциям-членам
QPicture::QPicture(const QPicture &pic)
Создаёт копию pic.
Этот конструктор быстрый благодаря явной совместной работе.
QPicture::QPicture(int formatVersion = -1)
Создаёт пустую картинку.
Параметр formatVersion может использоваться для создания QPicture, которая может быть прочитана приложениями, скомпилированными с более ранними версиями Qt.
Обратите внимание, что по умолчанию formatVersion равен -1, что означает текущую версию, т. е. для Qt 4.0 formatVersion 7 эквивалентен по умолчанию formatVersion -1.
Чтение картинок, сгенерированных более ранними версиями Qt, в Qt 4.0 не поддерживается.
QPicture &QPicture::operator=(QPicture &&other)
Перемещающее присвоение other этому экземпляру QPicture.
Эта функция была добавлена в Qt 5.2.
QPicture &QPicture::operator=(const QPicture &p)
Присваивает картинку p текущей картинке и возвращает ссылку на эту картинку.
[virtual] QPicture::~QPicture()
Удаляет картинку.
QRect QPicture::boundingRect() const
Возвращает прямоугольник ограничивающий картинку или недействительный прямоугольник, если картинка не содержит данных.
См. также setBoundingRect().
const char *QPicture::data() const
Возвращает указатель на данные картинки. Указатель действителен до следующего вызова функции без const для этой картинки. Возвращаемый указатель равен 0, если картинка не содержит данных.
См. также setData(), size(), и isNull().
bool QPicture::isNull() const
Возвращает true если картинка не содержит данных; в противном случае возвращает false.
bool QPicture::load(const QString &fileName, const char *format = nullptr)
Загружает картинку из файла, указанного в fileName, и возвращает true, если успешно; в противном случае делает картинку недействительной и возвращает false.
Обратите внимание, что параметр format устарел и не оказывает никакого влияния.
См. также save().
bool QPicture::load(QIODevice *dev, const char *format = nullptr)
Это перегруженная функция.
dev — устройство для загрузки.
bool QPicture::play(QPainter *painter)
Воспроизводит картинку с помощью painter и возвращает true при успехе; в противном случае возвращает false.
Эта функция делает ровно то же самое, что и QPainter::drawPicture() с (x, y) = (0, 0).
bool QPicture::save(const QString &fileName, const char *format = nullptr)
Сохраняет картинку в файл, указанный в fileName, и возвращает true, если успешно; в противном случае возвращает false.
Обратите внимание, что параметр format устарел и не оказывает никакого влияния.
См. также load().
bool QPicture::save(QIODevice *dev, const char *format = nullptr)
Это перегруженная функция.
dev — устройство для сохранения.
void QPicture::setBoundingRect(const QRect &r)
Устанавливает прямоугольник ограничивающий картинку в r. Автоматически вычисленное значение переопределяется.
См. также boundingRect().
[virtual] void QPicture::setData(const char *data, uint size)
Устанавливает данные картинки непосредственно из data и size. Эта функция копирует входные данные.
uint QPicture::size() const
Возвращает размер данных изображения.
См. также data().
void QPicture::swap(QPicture &other)
Меняет местами изображение other с этим изображением. Эта операция очень быстрая и никогда не терпит неудачу.
Эта функция была добавлена в Qt 4.8.
Связанные нечлены
QDataStream &operator<<(QDataStream &s, const QPicture &r)
Записывает изображение r в поток s и возвращает ссылку на поток.
QDataStream &operator>>(QDataStream &s, QPicture &r)
Читает изображение из потока s в изображение r и возвращает ссылку на поток.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qpicture.html