我想优化我的开罗绘画。我有一个不变的背景,上面画着开罗的图形。类的每个实例的背景可能不同,因此它不能是静态文件。为了绘制背景,我想做这样的事情:
if self.pixbuf is None:
self.pixbuf = self.draw_background(cr, width, height)
#self.pixbuf = gtk.gdk.pixbuf_new_from_file("/path/to/file.png")
cr.set_source_pixbuf(self.pixbuf, 0, 0)
cr.paint()
所以我只创建一次背景,然后将其显示为图像并在其上绘制。这是为了节省时间,而不是每次别人更改时都重新绘制整个不变的背景。注释掉的代码行工作正常,但我真的不想创建一个png,将其保存到一个临时文件中,然后加载该文件。这好像是在浪费IO。在
我试过了:
^{pr2}$但没有显示背景。在
我做错什么了?在
正如Uli所指出的,你所画的是指向你的widget作为目标的上下文,而不是pixbuf。要为pixbuf创建新的cairo上下文,请使用cairo_create。画完了别忘了把它毁了。在
相关问题 更多 >
编程相关推荐