Класс QPicture
Класс QPicture — это устройство рисования, которое записывает и воспроизводит команды QPainter. Подробнее...
| Заголовок: | #include <QPicture> |
| qmake: | QT += gui |
| Наследуется от: | QPaintDevice |
Открытые функции
| QPicture(int formatVersion = -1) | |
| QPicture(const QPicture &pic) | |
| 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) |
| 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.
Этот конструктор быстрый благодаря явной совместной обработке.
[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.
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/archives/qt-5.11/qpicture.html