PyQt 图形与富文本处理技术详解
1. 图形视图类概述
图形视图类在处理大量单个图形项绘制时表现出色,适用于从几十个到数十万计的图形项绘制场景。它还支持用户与图形项进行交互,如点击、拖动和选择,同时也是实现动画效果的理想选择。
场景拥有自己的逻辑坐标系,其中包含各种图形项。通过 QGraphicsView 来查看场景,若需要用户以不同变换方式(如不同缩放级别或旋转角度)查看场景,可将多个视图关联到同一个场景。
图形视图类包含许多可直接使用的预定义图形项,也能通过继承 QGraphicsItem 或其子类,实现自定义行为(如上下文菜单和按键事件处理)以及自定义绘制,从而绘制任意形状。
2. 场景的保存与加载
若要将场景保存到文件或从文件加载场景,可确保每个图形项都有变换矩阵,然后保存图形项描述、其在场景中的位置、矩阵以及可能需要的特定于图形项的数据。使用 QDataStream 来完成此操作非常简便。
3. 场景的绘制
任何场景都能通过场景和视图类提供的 render() 方法,绘制在各种绘图设备上,如打印机、PDF 文件或 QImage (例如保存为 .png 文件)。从 Qt 4.3 开始,还能使用 QSvgGenerator 绘图设备类将场景渲染为 SVG 格式。
4. 图形项的绘制
由于方便的局部坐标系,绘制图形视图项变得尽可能简单,可
超级会员免费看
订阅专栏 解锁全文
397

被折叠的 条评论
为什么被折叠?



