Класс 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) |
Подробное описание
Изображение сериализует команды painter в устройство ввода-вывода в независимом от платформы формате. Иногда их называют метафайлами.
Изображения Qt используют собственный двоичный формат. В отличие от форматов изображений (метафайлов) на многих системах Windows, изображения Qt не имеют ограничений относительно их содержимого. Всё, что можно нарисовать на виджете или pixmap (например, шрифты, pixmap, области, преобразованная графика и т. д.), также можно сохранить в изображении.
QPicture независимо от разрешения, т. е. QPicture можно отобразить на разных устройствах (например, svg, pdf, ps, принтер и экран), выглядящих одинаково. Это необходимо, например, для предварительного просмотра печати WYSIWYG. QPicture работает с системным значением DPI по умолчанию и масштабирует painter, чтобы соответствовать различиям в разрешении в зависимости от системы Windows.
Пример того, как записать изображение:
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 Обратите внимание, что список команд painter сбрасывается при каждом вызове функции 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
Возвращает указатель на данные изображения. Указатель действителен до вызова следующей неконстантной функции для этого изображения. Возвращаемый указатель равен 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 &QPicture::operator<<(QDataStream &s, const QPicture &r)
Записывает изображение r в поток s и возвращает ссылку на поток.
QDataStream &QPicture::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.13/qpicture.html