Класс QBackingStore
Класс QBackingStore предоставляет область рисования для QWindow. Подробнее...
| Заголовок: | #include <QBackingStore> |
| qmake: | QT += gui |
| С тех пор: | Qt 5.0 |
Этот класс был представлен в Qt 5.0.
Открытые функции
| QBackingStore(QWindow *window) | |
| ~QBackingStore() | |
| void | beginPaint(const QRegion ®ion) |
| void | endPaint() |
| void | flush(const QRegion ®ion, QWindow *window = nullptr, const QPoint &offset = QPoint()) |
| QPlatformBackingStore * | handle() const |
| bool | hasStaticContents() const |
| QPaintDevice * | paintDevice() |
| void | resize(const QSize &size) |
| bool | scroll(const QRegion &area, int dx, int dy) |
| void | setStaticContents(const QRegion ®ion) |
| QSize | size() const |
| QRegion | staticContents() const |
| QWindow * | window() const |
Подробное описание
QBackingStore позволяет использовать QPainter для рисования на QWindow с типом RasterSurface. Другой способ рендеринга на QWindow — использование OpenGL с QOpenGLContext.
QBackingStore содержит буферизованное представление содержимого окна и, следовательно, поддерживает частичные обновления, используя QPainter для обновления только подмножества содержимого окна.
QBackingStore может использоваться приложением, которое хочет использовать QPainter без ускорения OpenGL и без дополнительной накладных расходов, связанных с использованием стеков пользовательского интерфейса QWidget или QGraphicsView. Пример использования QBackingStore можно найти в примере Raster Window Example.
Документация функций-членов
QBackingStore::QBackingStore(QWindow *window)
Конструирует пустую поверхность для заданного верхнего окна window.
QBackingStore::~QBackingStore()
Уничтожает эту поверхность.
void QBackingStore::beginPaint(const QRegion ®ion)
Начинает рисование на поверхности backing store в заданной области region.
Перед использованием paintDevice() для рисования необходимо вызвать эту функцию.
См. также endPaint() и paintDevice().
void QBackingStore::endPaint()
Заканчивает рисование.
После окончания рисования с помощью paintDevice() необходимо вызвать эту функцию.
См. также beginPaint() и paintDevice().
void QBackingStore::flush(const QRegion ®ion, QWindow *window = nullptr, const QPoint &offset = QPoint())
Очищает заданную область region из указанного window на экран.
window должен быть либо верхним окном, представленным этим backingstore, либо непереходным дочерним окном этого окна. Передача nullptr приводит к использованию верхнего окна backingstore.
Если window является дочерним окном, region должна быть в координатах дочернего окна, а offset — смещением дочернего окна относительно верхнего окна backingstore.
После завершения рисования с помощью endPaint() следует вызвать эту функцию.
См. также QWindow::transientParent().
QPlatformBackingStore *QBackingStore::handle() const
Возвращает указатель на реализацию QPlatformBackingStore.
bool QBackingStore::hasStaticContents() const
Возвращает логическое значение, указывающее, содержит ли это окно статическое содержимое или нет.
QPaintDevice *QBackingStore::paintDevice()
Возвращает устройство рисования для этой поверхности.
Предупреждение: устройство действительно только между вызовами beginPaint() и endPaint(). Не следует кэшировать возвращенное значение.
void QBackingStore::resize(const QSize &size)
Устанавливает размер поверхности окна в size.
См. также size().
bool QBackingStore::scroll(const QRegion &area, int dx, int dy)
Прокручивает заданную область area на dx пикселей вправо и dy вниз; как dx, так и dy могут быть отрицательными.
Возвращает true, если область была прокручена успешно; в противном случае — false.
void QBackingStore::setStaticContents(const QRegion ®ion)
Устанавливает region в качестве статического содержимого этого окна.
См. также staticContents().
QSize QBackingStore::size() const
Возвращает текущий размер поверхности окна.
QRegion QBackingStore::staticContents() const
Возвращает QRegion, представляющую область окна, содержащую статическое содержимое.
См. также setStaticContents().
QWindow *QBackingStore::window() const
Возвращает указатель на связанное с этой поверхностью верхнее окно.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qbackingstore.html