Класс QPicture
Класс QPicture представляет собой устройство рисования, которое записывает и воспроизводит команды QPainter. Подробнее...
| Заголовок: | #include <QPicture> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| 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) |
| bool | load(QIODevice *dev) |
| bool | play(QPainter *painter) |
| bool | save(const QString &fileName) |
| bool | save(QIODevice *dev) |
| 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) |
Подробное описание
Изображение сериализует команды рисования в устройство ввода-вывода в платформенно-независимом формате. Иногда их называют метафайлами.
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.
[since 5.2] 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)
Загружает изображение из файла, указанного в fileName, и возвращает true, если операция выполнена успешно; в противном случае делает изображение недействительным и возвращает false.
См. также save().
bool QPicture::load(QIODevice *dev)
Это перегруженная функция.
dev — устройство, которое следует использовать для загрузки.
bool QPicture::play(QPainter *painter)
Воспроизводит изображение с помощью painter и возвращает true, если операция выполнена успешно; в противном случае возвращает false.
Эта функция делает ровно то же самое, что и QPainter::drawPicture() с (x, y) = (0, 0).
bool QPicture::save(const QString &fileName)
Сохраняет изображение в файл, указанный в fileName, и возвращает true, если операция выполнена успешно; в противном случае возвращает false.
См. также load().
bool QPicture::save(QIODevice *dev)
Это перегруженная функция.
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 с этим изображением. Эта операция очень быстрая и никогда не терпит неудачу.
Связанные нечлены
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-6.0/qpicture.html