文章目录

  • 详述
    • 创建和使用区域
  • 公共类型
    • enum RegionType
    • typedef const_iterator
    • typedef const_reverse_iterator
  • 公共函数
    • 构造析构交换赋值
    • 迭代器
    • 界限
    • 集合运算
    • 矩形
    • 平移
    • 运算符重载
  • 相关的非成员

QRegion 类

QRegion类为画家指定一个剪辑区域。

Header #include < QRegion >
qmake QT += gui
Inherited By

详述

QRegion与QPainter::setClipRegion() 一起使用以将绘画区域限制为需要绘画的区域。 还有一个QWidget :: repaint() 函数,它带有QRegion参数。 QRegion是最小化要通过重绘更新的屏幕区域数量的最佳工具。

此类不适用于构造要渲染的形状,尤其是轮廓。 使用QPainterPath创建用于QPainter的路径和形状。

QRegion是一个隐式共享的类。

创建和使用区域

可以从矩形,椭圆形,多边形或位图创建区域。 可以通过使用united() ,intersected() ,subtracted() 或xored() (异或)组合简单区域来创建复杂区域。 您可以使用translate() 移动区域。

您可以测试区域isEmpty() 还是包含QPoint或QRect。 可以使用boundingRect() 找到边界矩形。

在区域上进行迭代(使用begin() ,end() 或C ++ 11范围循环)将区域分解为矩形。

使用复杂区域的示例:

 void MyWidget::paintEvent(QPaintEvent *){QRegion r1(QRect(100, 100, 200, 80),    // r1: elliptic regionQRegion::Ellipse);QRegion r2(QRect(100, 120, 90, 30));    // r2: rectangular regionQRegion r3 = r1.intersected(r2);        // r3: intersectionQPainter painter(this);painter.setClipRegion(r3);...                                     // paint clipped graphics}

另请参见QPainter :: setClipRegion() ,QPainter :: setClipRect() 和QPainterPath。

公共类型

enum RegionType

指定要创建的区域的形状。

Constant Value Description
Rectangle 0 该区域覆盖整个矩形。
Ellipse 1 该区域是矩形内的椭圆。

typedef const_iterator

组成区域的不重叠矩形上的迭代器
所有矩形的并集等于原始区域。QRegion不提供可变的迭代器。
另请参见begin() 和end() 。

typedef const_reverse_iterator

在组成区域的非重叠矩形上的反向迭代器
所有矩形的并集等于原始区域。QRegion不提供可变的迭代器。
另请参见rbegin() 和rend() 。

公共函数

构造析构交换赋值

  1. QRegion(const QBitmap &bm)
  2. QRegion(QRegion &&other)
  3. QRegion(const QRegion &r)
  4. QRegion(const QPolygon &a, Qt::FillRule fillRule = Qt::OddEvenFill)
  5. QRegion(const QRect &r, QRegion::RegionType t = Rectangle)
  6. QRegion(int x, int y, int w, int h, QRegion::RegionType t = Rectangle)
  7. QRegion()
  8. QRegion & operator=(QRegion &&other)
  9. QRegion & operator=(const QRegion &r)
  10. void swap(QRegion &other)

迭代器

  1. QRegion::const_iterator begin() const
  2. QRegion::const_iterator end() const
  3. QRegion::const_iterator cbegin() const
  4. QRegion::const_iterator cend() const
  5. QRegion::const_reverse_iterator crbegin() const
  6. QRegion::const_reverse_iterator crend() const
  7. QRegion::const_reverse_iterator rbegin() const
  8. QRegion::const_reverse_iterator rend() const

界限

  1. bool contains(const QPoint &p) const
  2. bool contains(const QRect &r) const
  3. bool isEmpty() const
  4. bool isNull() const

集合运算

  1. QRegion intersected(const QRegion &r) const
  2. QRegion intersected(const QRect &rect) const
  3. bool intersects(const QRegion &region) const
  4. bool intersects(const QRect &rect) const
  5. QRegion united(const QRegion &r) const
  6. QRegion united(const QRect &rect) const
  7. QRegion xored(const QRegion &r) const
  8. QRegion subtracted(const QRegion &r) const

矩形

  1. QRect boundingRect() const
  2. int rectCount() const
  3. void setRects(const QRect *rects, int number)

平移

  1. void translate(int dx, int dy)
  2. void translate(const QPoint &point)
  3. QRegion translated(int dx, int dy) const
  4. QRegion translated(const QPoint &p) const

运算符重载

  1. QVariant operator QVariant() const
  2. bool operator!=(const QRegion &other) const
  3. const QRegion operator&(const QRegion &r) const
  4. const QRegion operator&(const QRect &r) const
  5. QRegion & operator&=(const QRegion &r)
  6. QRegion & operator&=(const QRect &r)
  7. const QRegion operator+(const QRegion &r) const
  8. const QRegion operator+(const QRect &r) const
  9. QRegion & operator+=(const QRegion &r)
  10. QRegion & operator+=(const QRect &rect)
  11. const QRegion operator-(const QRegion &r) const
  12. QRegion & operator-=(const QRegion &r)
  13. bool operator==(const QRegion &r) const
  14. const QRegion operator^(const QRegion &r) const
  15. QRegion & operator^=(const QRegion &r)
  16. const QRegion operator|(const QRegion &r) const
  17. QRegion & operator|=(const QRegion &r)

相关的非成员

  1. QDataStream & operator<<(QDataStream &s, const QRegion &r)
  2. QDataStream & operator>>(QDataStream &s, QRegion &r)

绘画系统(14):【类】QRegion[官翻]相关推荐

  1. QFileDevice 类【官翻】

    文章目录 一.详述 二.公共类型 三.公共函数 四.重新实现的公共函数 五.重新实现受保护的函数 QFileDevice 类 QFileDevice类提供用于读取和写入打开文件的接口. Header: ...

  2. QSettings 类【官翻】

    文章目录 详述 基本用法 QVariant和GUI类型 Section 和 Key 的语法 后备机制 恢复GUI应用程序的状态 同时从多个线程或进程访问设置 特定于平台的说明 应用程序设置的存储位置 ...

  3. QFileInfo 类【官翻】

    文章目录 详述 性能问题 公共函数 创建及析构 目录 路径.文件名及后缀 时间信息 缓存 属性 类型 访问权限 比较 静态公用函数 相关的非成员 QFileInfo 类 QFileInfo类提供与系统 ...

  4. QStorageInfo 类【官翻】

    文章目录 详述 公共函数 静态公共函数 相关非成员 QStorageInfo 类 提供有关当前安装的存储和驱动器的信息. Header: #include < QStorageInfo > ...

  5. QFile 类【官翻】

    文章目录 详述 直接读取文件 使用流读取文件 信号 平台特定问题 公共类型 公共函数 重新实现的公共函数 静态公用函数 QFile 类 QFile类提供用于读取和写入文件的接口. Header: #i ...

  6. Qt 线程(02):线程类【官翻】

    线程类 类名 简介 Concurrent Filter and Filter-Reduce Concurrent Map and Map-Reduce Concurrent Run QAtomicIn ...

  7. 绘画系统(03):【类】QPainter[官翻]

    文章目录 详述 Settings Drawing 绘制Pixmaps和Images 绘制高分辨率的Pixmaps和Images 渲染质量 坐标转换 剪切 组合方式 局限性 Performance 公共 ...

  8. 绘画系统(04):【类】QPaintDevice[官翻]

    文章目录 详述 公共类型 enum PaintDeviceMetric 公共函数 受保护的函数 QPaintDevice 类 QPaintDevice类是可以用QPainter绘制对象的基类 Head ...

  9. 绘画系统(02):【纲】Paint Devices and Backends[官翻]

    绘画设备和后端 Paint Devices and Backends 创建绘画设备 ​ QPaintDevice类是可以绘制的对象的基类,即QPainter可以在任何QPaintDevice子类上绘制 ...

最新文章

  1. vector 声明固定长度的数组
  2. 设置最小值与最大值 css,一文学会使用 CSS 中的 min(), max(), clamp() 以及它们的使用场景...
  3. 大话ion系列(四)
  4. gateway sentinel 熔断 不起作用_Spring Cloud Alibaba集训营第五天(服务熔断和限流)
  5. Errors reported here must be corrected before the service can be started.
  6. docker容器下mongodb 4.0.0 的Replica Sets+Sharded Cluster集群
  7. 中小企业上云如何选择及操作
  8. 【cs229-Lecture8】顺序最小优化算法
  9. Atitit 版本管理----分支管理Atit
  10. 2020.8.28丨转录组、全转录组方案设计和案例解析
  11. C语言某一身高下不同体重对应的BMI值表
  12. 小甲鱼零基础入门学习Python(绝对干货,值得学习)
  13. 托托又来了——PCA实现人脸识别
  14. 暖暖环游世界显示服务器异常,暖暖环游世界
  15. Nginx 部署 静态资源路径问题
  16. 模糊综合评价法遇到一些问题
  17. FairyGUI人物状态弹窗
  18. scanf() 与 scanf_s() 的区别
  19. DW 2023年1月Free Excel 第六次打卡 查找函数
  20. Go exec 包执行命令超时失效问题分析及解决方案

热门文章

  1. Chrome Adobe Flash Player 因过期而 阻止
  2. 在线音乐玩儿三国杀,一统天下为时尚早
  3. 对lua迭带器的理解
  4. 小白学 Python 爬虫(15):urllib 基础使用(五)
  5. 建立一个udec模型
  6. 海面与舰船电磁散射建模GO-PO方法论文阅读与整理
  7. python利用集合的无重复性_python集合类型用法分析
  8. 微众银行4.23笔试
  9. java算法竞赛:快速读入输出
  10. Nginx 静态资源