Hi ,
I am trying to attach a cairo object into a vbox.I can pack a textbox with the
following code:
entry = gtk.Entry()
entry.set_max_length(50)
entry.connect("activate", self.enter_callback, entry)
entry.set_text("hello")
entry.insert_text(" world", len(entry.get_text()))
entry.select_region(0, len(entry.get_text()))
self.vbox.pack_start(entry, True, True, 0)
entry.show()
but when I do the same for a cairo object I had created from the pycairo
examples ,it wont.
self.window = builder.get_object("mainwindow")
self.vbox = builder.get_object("winvbox")
# connect signals
builder.connect_signals(self)
....
self.cairorun(cairoshape)
def cairorun(self,Widget):
widget = Widget()
self.vbox.pack_start(widget, True, True, 0)
widget.show()
class cairoshape(framework.Screen):
def draw(self, cr, width, height):
image = cairo.ImageSurface.create_from_png ("image.png")
cr.set_source_surface (image, 0, 0)
cr.paint ()
and the framework.py from the examples:
#! /usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk, gobject, cairo
# Create a GTK+ widget on which we will draw using Cairo
class Screen(gtk.DrawingArea):
# Draw in response to an expose-event
__gsignals__ = { "expose-event": "override" }
# Handle the expose-event by drawing
def do_expose_event(self, event):
# Create the cairo context
cr = self.window.cairo_create()
# Restrict Cairo to the exposed area; avoid extra work
cr.rectangle(event.area.x, event.area.y,
event.area.width, event.area.height)
cr.clip()
self.draw(cr, *self.window.get_size())
def draw(self, cr, width, height):
# Fill the background with gray
cr.set_source_rgb(0.5, 0.5, 0.5)
cr.rectangle(0, 0, width, height)
cr.fill()
# GTK mumbo-jumbo to show the widget in a window and quit when it's closed
def run(Widget):
window = gtk.Window()
window.connect("delete-event", gtk.main_quit)
widget = Widget()
widget.show()
window.add(widget)
window.present()
gtk.main()
if __name__ == "__main__":
run(Screen)
In short,I can attach the cairo widget to a main window but I'm unable to pack
it into a vbox.
Regards,
SZ
" life isn't heavy enough,it flies away and floats far above action"
Start at the new Yahoo!7 for a better online experience. www.yahoo7.com.au
--
http://mail.python.org/mailman/listinfo/python-list