2

我想使用pycairo和显示一些简单的游戏/交互式矢量图python3

我认为我还需要一个“小部件工具包”来管理创建窗口本身,因为我认为pycairo不能单独完成该部分(它只会将输出保存到文件中)。

我研究过PySide(基于Qt,似乎很复杂)和gi(基于 gtk3 我猜,甚至有gi-cairo但找不到教程或示例)。我真的不知道如何将它们与pycairo.

我听说过pygame但似乎不受支持python3(至少我没有出现在 apt 中的 python3-pygame)。

我可以有一个使用pycairowithpython3和一些标准窗口工具包来创建窗口并绘制一些简单动画的入门示例吗?

编辑:如果示例是动画的,则加分。

4

1 回答 1

0

这是 PySide 中的一个完整应用程序,它在屏幕上显示一个(可能是动画的)SVG 文件:

import sys
from PySide import QtCore, QtGui, QtSvg

app = QtGui.QApplication(sys.argv)

widget = QtSvg.QSvgWidget('animation.svg')
widget.show()

app.exec_()

这是另一个使用图形视图框架为奇怪的矢量形状设置动画的示例:

import sys
from PySide.QtCore import *
from PySide.QtGui import *

app = QApplication(sys.argv)

path = QPainterPath()
path.quadTo(0,20, 20,20)
path.lineTo(10,10)

item = QGraphicsPathItem(path)

timer = QTimeLine(5000)
timer.setFrameRange(0, 100)

ani = QGraphicsItemAnimation()
ani.setItem(item)
ani.setTimeLine(timer)

ani.setPosAt(1, QPointF(200,200))
ani.setRotationAt(1, 360)
ani.setScaleAt(1, 3,3)

scene = QGraphicsScene(0,0, 300,300)
scene.addItem(item)

view = QGraphicsView(scene)
view.setRenderHints(QPainter.Antialiasing)
view.show()

timer.start()

app.exec_()
于 2012-08-30T20:47:33.163 回答