PyQt 图形与富文本处理技术详解
1. 基于项目的图形处理
在图形绘制与动画实现方面,有许多实用的方法和技术。例如,可以通过序列 1, 2, 3, 4, 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, -4, -3, -2, -1, 0, 1, 2 等产生不错的摇摆效果。
图形视图类在处理大量单个项目绘制的场景中表现出色,从几十到数十万的项目都能轻松应对。它还非常适合用户与项目进行交互,如点击、拖动和选择项目,同时也是实现动画的理想选择。
场景使用自己的逻辑坐标系,其中包含图形项目。通过 QGraphicsView 可以查看场景,如果需要用户以两种或更多不同的变换(如不同的缩放级别或旋转角度)查看场景,还可以将多个视图关联到一个场景。
图形视图类包含许多有用的预定义项目,可直接使用。我们也可以对 QGraphicsItem 或其子类进行子类化,以提供自定义行为(如上下文菜单和按键事件处理)以及自定义绘制,从而绘制出任意形状。
如果要将场景保存到文件或从文件加载场景,一种简单的方法是确保每个项目都有一个变换矩阵,并保存项目描述、项目在场景中的位置、项目矩阵以及任何可能需要的特定于项目的数据。使用 QDataStream 来完成这个操作非常容易。
任何场景都可以通过场景和视图类提供的 render() 方法绘制在任何绘图设备上,包括打印机、PDF 文件或 QImage (例如保存为 .png
超级会员免费看
订阅专栏 解锁全文
397

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



