Класс 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
Возвращает указатель на данные изображения. Указатель действителен до тех пор, пока не будет вызвана следующая функция без 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.1/qpicture.html