PyQt4:QPainter 和 QGraphicsSvgItem

Posted

技术标签:

【中文标题】PyQt4:QPainter 和 QGraphicsSvgItem【英文标题】:PyQt4 : QPainter and QGraphicsSvgItem 【发布时间】:2012-01-05 11:55:58 【问题描述】:

我不熟悉 SVG,所以我可以了解它的概念。 我将在 QGraphicsScene 上绘制项目。 使用 QGraphicsScene 的方法(如 addRect、addLine 等)我可以绘制。 但它只是一个绘图,它不能与用户交互。 然后,有人告诉我 SVG 可以解决它。 所以,我研究了“SVG”并阅读了相关文档,但我无法理解。 QGraphicsSvgItem 需要“*.svg”文件...对吗? 我只想实时绘制一个矩形。 QPainter 或其他东西可以转换为 QGraphicsSvgItem 吗?

【问题讨论】:

【参考方案1】:

我认为有人误导了你。 QGraphicsSVGItem 用于将 .svg(我认为是可缩放矢量图形)文件添加到您的 QGraphicsScene。

你没有提到你需要什么样的互动,但无论如何这里是一个回复:

QGraphicsItems 有项目flags,可以修改项目的行为。如果这些标志不能满足您的需求,您始终可以继承 QGraphicsItem 并覆盖 mousePressEvent、wheelEvent 等虚拟方法。

【讨论】:

感谢您的建议。我研究 QGraphicsItem 等等。我想我可以和他们一起度过难关。 :)

以上是关于PyQt4:QPainter 和 QGraphicsSvgItem的主要内容,如果未能解决你的问题,请参考以下文章

如何用鼠标动态调整 QHBoxLayout 和 QGraphicsView 大小? (Python,Pyqt4)

QT源码拾贝0-5(qimage和qpainter)

QT源码拾贝0-5(qimage和qpainter)

利用QPainter绘制各种图形(Shape, Pen 宽带,颜色,风格,Cap,Join,刷子)

获取 QPainter 的可见区域

使用 QPainter 绘制带有渐变边缘的直线和曲线