blob: adcccd60aa199bd8a58c40401bed50c16ed68d23 (
plain)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | // Copyright (C) 2024 Christian Ehrlicher <ch.ehrlicher@gmx.de>// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause#include <QPaintEvent>#include <QPainter>#include <QPainterStateGuard>#include <QWidget>namespace src_gui_painting_qpainterstateguard {struct MyWidget :public QWidget {voidpaintEvent(QPaintEvent *) override;bool drawText =true; QLine line;};struct MyGuardWidget :public QWidget {voidpaintEvent(QPaintEvent *) override;bool drawText =true; QLine line;};//! [0]voidMyWidget::paintEvent(QPaintEvent *){ QPainter painter(this); painter.setPen(Qt::red);if(drawText) { painter.save(); painter.setPen(Qt::blue); painter.setFont(QFont("Arial",30)); painter.drawText(rect(),Qt::AlignCenter,"Qt"); painter.restore();// don't forget to restore previous painter state} painter.drawLine(line);}//! [0]//! [1]voidMyGuardWidget::paintEvent(QPaintEvent *){ QPainter painter(this); painter.setPen(Qt::red);if(drawText) { QPainterStateGuard guard(&painter) painter.setPen(Qt::blue); painter.setFont(QFont("Arial",30)); painter.drawText(rect(),Qt::AlignCenter,"Qt");} painter.drawLine(line);}//! [1]}// src_gui_painting_qpainterstateguard
|