| FAQ Index - Search - Recent Changes - Everything - Add entry |
18.9. How to set a tiled background pixmap on gnomecanvas.Canvas? Or, how do set custom background on gnomecanvas.Canvas?
You have to connect_after or override the signal "draw-background", and paint there what you want as canvas background, such as tiled pixmap, grid, etc. Here's an example for setting tiled pixmap:
import gtk
from gtk import gdk
import gnomecanvas as canvas
def drawbk(acv, dw, x, y, ww, hh, pb):
gc = dw.new_gc()
pw = pb.get_width()
ph = pb.get_height()
offset_x = x % pw
offset_y = y % ph
dw_y = -offset_y
while dw_y < hh:
dw_x = -offset_x
while dw_x < ww:
dw.draw_pixbuf(gc, pb, 0, 0, dw_x, dw_y)
dw_x += pw
dw_y += ph
# window
win = gtk.Window()
win.resize(100, 200)
win.connect('destroy', gtk.main_quit)
win.realize()
# load a graphic
pb = gdk.pixbuf_new_from_file('baize.png')
w, h = pb.get_width(), pb.get_height()
cv = canvas.Canvas()
cv.connect_after('draw-background', drawbk, pb)
win.add(cv)
win.show_all()
gtk.main()
