14.01.2011 15:19
Интересует возможность смены содержимого в одном TOPLEVEL окне на Diablo.. Или придется создавать несколько окон и переключаться через gtk_widget_hide и gtk_widget_show?
#include <gtk/gtk.h>
GtkWindow *window;
GtkWidget *button1;
GtkWidget *button2;
void on_button1(GtkButton *source, gpointer user_data)
{
gtk_container_remove(GTK_CONTAINER(window), button1);
gtk_container_add(GTK_CONTAINER(window), button2);
}
void on_button2(GtkButton *source, gpointer user_data)
{
gtk_container_remove(GTK_CONTAINER(window), button2);
gtk_container_add(GTK_CONTAINER(window), button1);
}
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
window = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL));
button1 = gtk_button_new_with_label(\"Button 1\");
button2 = gtk_button_new_with_label(\"Button 2\");
g_object_ref(G_OBJECT(button1));
g_object_ref(G_OBJECT(button2));
gtk_widget_show(button1);
gtk_widget_show(button2);
g_signal_connect(G_OBJECT(button1), \"clicked\", G_CALLBACK(on_button1), 0);
g_signal_connect(G_OBJECT(button2), \"clicked\", G_CALLBACK(on_button2), 0);
gtk_container_add(GTK_CONTAINER(window), button1);
g_signal_connect(G_OBJECT(window), \"destroy\", G_CALLBACK(gtk_main_quit), 0);
gtk_widget_show_all(GTK_WIDGET(window));
gtk_main();
}
GLIB CRITICAL ** Gtk - gtk_buildable_parser_finished: assertion `GTK_IS_BUILDABLE (buildable)' failedDarkTroll:Эх блин, сдавал когда-то такие лабы в универе, писанные на питоне, да вот не имею привычки сохранять их.... :(