Note that there are some explanatory texts on larger screens.

plurals
  1. POGtk3 window background image
    primarykey
    data
    text
    <p>I'm using C language in gtk+-3.0.12 (latest stable version as of 9/10/2011) How can I create a png background image on a top window and still place other widgets like buttons on the window? I tried the following but the image is drawn over the button.</p> <pre><code>/* * Compile with: * gcc -Wextra -o cairo6 `pkg-config --cflags --libs gtk+-3.0` cairo6.c */ #include &lt;gtk/gtk.h&gt; static cairo_surface_t *surface = NULL; cairo_surface_t *image; static gboolean on_expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer data) { cairo_t *cr; surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget), CAIRO_CONTENT_COLOR, gtk_widget_get_allocated_width (widget), gtk_widget_get_allocated_height (widget)); cr = gdk_cairo_create ( gtk_widget_get_window (GTK_WIDGET(widget)) ); cairo_set_source_surface (cr, image, 0, 0); cairo_paint (cr); cairo_destroy (cr); return TRUE; } int main(int argc, char *argv[]) { GtkWidget *window; gtk_init(&amp;argc, &amp;argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); image = cairo_image_surface_create_from_png("bdrop.png"); //Supply your own image here g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); gtk_widget_set_app_paintable(window, FALSE); gtk_window_set_position (GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_window_set_default_size (GTK_WINDOW(window), 800, 480); GtkWidget *ebox = gtk_event_box_new (); GtkWidget *button; button = gtk_button_new_with_label("QUIT"); gtk_widget_set_halign (GTK_WIDGET(button),GTK_ALIGN_CENTER); gtk_widget_set_valign (GTK_WIDGET(button),GTK_ALIGN_CENTER); gtk_container_add (GTK_CONTAINER(ebox), button); g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL); gtk_container_add (GTK_CONTAINER(window), ebox); g_signal_connect(ebox,"draw", G_CALLBACK (on_expose_event),NULL); gtk_widget_show_all (window); gtk_main(); cairo_surface_destroy (image); return 0; } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload