• Qt 绘画


    QPainter构造函数中,parent指定绘图对象(设备);QPainter构造函数中自动调用begin函数,表明绘图开始,在QPainter的析构函数中调用end()函数结束绘制。

    Qt中进行绘画,需要重写paintEvent方法:

    1. protected:
    2. void paintEvent(QPaintEvent *event);

    1、画矩形

    void QPainter::drawRect(int x, int y, int width, int height)

    1. void Widget::paintEvent(QPaintEvent *event)
    2. {
    3. QRectF rectangle(10.0, 20.0, 80.0, 60.0);
    4. QPainter painter(this);
    5. painter.drawRect(rectangle);
    6. }

    2、画椭圆矩形

    void QPainter::drawRoundedRect(int x, int y, int w, int h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = ...)

    1. void Widget::paintEvent(QPaintEvent *event)
    2. {
    3. QRectF rectangle(10.0, 20.0, 100.0, 60.0);
    4. QPainter painter(this);
    5. painter.drawRoundedRect(rectangle, 15.0, 15.0);
    6. }

    3、画圆

    void QPainter::drawEllipse(int x, int y, int width, int height)

    1. void Widget::paintEvent(QPaintEvent *event)
    2. {
    3. QRectF rectangle(10.0, 20.0, 60.0, 60.0);
    4. QPainter painter(this);
    5. painter.drawEllipse(rectangle);
    6. }

    或者使用

    void QPainter::drawArc(int x, int y, int width, int height, int startAngle, int spanAngle)

    起始角和偏移角必须必须是度数的十六分之一。即1°表示为1*16,直角90°表示为90*16。

    1. void Widget::paintEvent(QPaintEvent *event)
    2. {
    3. QRectF rectangle(10.0, 20.0, 60.0, 60.0);
    4. int startAngle = 0 * 16;
    5. int spanAngle = 360 * 16;
    6. QPainter painter(this);
    7. painter.drawArc(rectangle,startAngle,spanAngle);
    8. }

  • 相关阅读:
    MySQL数据库管理
    汇编函数的调用约定
    软考高级软件架构风格定义以及分类
    kubernetes
    JAVA 之 Spring框架学习 1:Springの初体验 IOC DI
    Vue(Vuex插件)
    LVGL Animations(动画)的简单使用
    五种分布式事务解决方案(图文总结)
    HTML <!DOCTYPE>标记
    达梦数据库如何收集统计信息?
  • 原文地址:https://blog.csdn.net/amyliyanice/article/details/126913944