Класс QPicture
Класс QPicture — это устройство рисования, которое записывает и воспроизводит команды QPainter. Подробнее...
| Заголовок: | #include <QPicture> |
| qmake: | QT += gui |
| Наследуется от: | QPaintDevice |
Открытые функции
| QPicture(int formatVersion = -1) | |
| QPicture(const QPicture &pic) | |
| ~QPicture() | |
| QRect | boundingRect() const |
| const char * | data() const |
| bool | isNull() const |
| bool | load(const QString &fileName, const char *format = Q_NULLPTR) |
| bool | load(QIODevice *dev, const char *format = Q_NULLPTR) |
| bool | play(QPainter *painter) |
| bool | save(const QString &fileName, const char *format = Q_NULLPTR) |
| bool | save(QIODevice *dev, const char *format = Q_NULLPTR) |
| void | setBoundingRect(const QRect &r) |
| virtual void | setData(const char *data, uint size) |
| uint | size() const |
| void | swap(QPicture &other) |
| QPicture & | operator=(const QPicture &p) |
| QPicture & | operator=(QPicture &&other) |
- 14 открытых функций, унаследованных от QPaintDevice
Связанные внешние члены
| QDataStream & | operator<<(QDataStream &s, const QPicture &r) |
| QDataStream & | operator>>(QDataStream &s, QPicture &r) |
Дополнительные унаследованные члены
- 1 защищенная функция, унаследованная от QPaintDevice
Подробное описание
Класс QPicture — это устройство рисования, которое записывает и воспроизводит команды QPainter.
Изображение сериализует команды рисования в устройство ввода-вывода в независимом от платформы формате. Иногда их называют метафайлами.
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(int formatVersion = -1)
Создаёт пустое изображение.
Параметр formatVersion может быть использован для создания QPicture, которое может быть прочитано приложениями, скомпилированными с более ранними версиями Qt.
Обратите внимание, что значение по умолчанию для formatVersion равно -1, что означает текущую версию, т. е. для Qt 4.0 значение formatVersion 7 эквивалентно значению по умолчанию -1.
Чтение изображений, сгенерированных более ранними версиями Qt, не поддерживается в Qt 4.0.
QPicture::QPicture(const QPicture &pic)
Создаёт копию pic.
Этот конструктор быстрый благодаря неявной совместной работе.
QPicture::~QPicture()
Удаляет изображение.
QRect QPicture::boundingRect() const
Возвращает ограничивающую прямоугольник изображения или недействительный прямоугольник, если изображение не содержит данных.
См. также setBoundingRect().
const char *QPicture::data() const
Возвращает указатель на данные изображения. Указатель действителен до вызова следующей не-константной функции для этого изображения. Возвращаемый указатель равен 0, если изображение не содержит данных.
См. также setData(), size() и isNull().
bool QPicture::isNull() const
Возвращает true, если изображение не содержит данных; в противном случае возвращает false.
bool QPicture::load(const QString &fileName, const char *format = Q_NULLPTR)
Загружает изображение из файла, указанного параметром fileName, и возвращает true, если успешно; в противном случае делает изображение недействительным и возвращает false.
Обратите внимание, что параметр format устарел и не повлияет на результат.
См. также save().
bool QPicture::load(QIODevice *dev, const char *format = Q_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 = Q_NULLPTR)
Сохраняет изображение в файл, указанный параметром fileName, и возвращает true, если успешно; в противном случае возвращает false.
Обратите внимание, что параметр format устарел и не повлияет на результат.
См. также load().
bool QPicture::save(QIODevice *dev, const char *format = Q_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.
QPicture &QPicture::operator=(const QPicture &p)
Присваивает изображение p этому изображению и возвращает ссылку на это изображение.
QPicture &QPicture::operator=(QPicture &&other)
Перемещает присвоение other экземпляру QPicture.
Эта функция была добавлена в Qt 5.2.
Связанные нечлены
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.9/qpicture.html