On 11/01/16 10:56 PM, someone...@sigaint.org wrote:
> Hi, I have been trying to use Cairo to draw on a Gtk::Window. I was
> successful when I overrided on_draw(). But the only thing I saw was what I
> drew everything else was black. What I did was
> 
> bool Window::on_draw(const Cairo::RefPtr<Cairo::Context>& cr)
> {
>       Gdk::Cairo::set_source_pixbuf(cr, m_image, 10, 10);
>       cr->paint();
> 
>       return false;
> }


I would use a Gtk::DrawingArea to draw in instead.

But since you saw what you draw, it is working. Maybe if you call the
superclass on_draw() first?

> On my second attempt I tried this:
> 
> Window::Window()
> {
>     auto cr = this->get_window()->create_cairo_context();
>     cr->save();
>     Gdk::Cairo::set_source_pixbuf(cr, m_image, 10, 10);
>     cr->paint();
>     cr->restore();
> }
> 
> But this made the program crash. How can I draw on the Gtk::Window? Thank
> You.

I wouldn't expect in the constructor that the window be in the right
state to do that. You don't give the stack trace, but either
get_window() returns null of create_cairo_context() does. (and by NULL I
mean the raw pointer)


Hub
_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to