Newsgroup: it.comp.os.linux.development
Titolo: Aiuto per programmino gtk

Perché non mi disegna il pulsante?
Ciao
		+++++++++++++++++++++++++++++++++++++++++++
#include <gtk/gtk.h>
gint delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) {
        g_print("Fine programma");
        return(FALSE);
}
void destroy(GtkWidget *widget, gpointer data) {
        gtk_main_quit();
}
int main(int argc, char *argv[]) {
        GtkWidget *window;
        GtkWidget *button;
        GtkWidget *file_menu;
        GtkWidget *new_item;
        GtkWidget *save_item;
        GtkWidget *exit_item;
        GtkWidget *file_item;
        GtkWidget *menu_bar;
        GtkWidget *hbox;
        gtk_init(&argc, &argv);
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        button = gtk_button_new_with_label("Vai!");
        /* creazione del menu*/
        file_menu = gtk_menu_new();
        new_item = gtk_menu_item_new_with_label("Nuovo");
        save_item = gtk_menu_item_new_with_label("Salva");
        exit_item = gtk_menu_item_new_with_label("Esci");
        gtk_menu_append(GTK_MENU(file_menu), new_item);
        gtk_menu_append(GTK_MENU(file_menu), save_item);
        gtk_menu_append(GTK_MENU(file_menu), exit_item);
        gtk_signal_connect_object(GTK_OBJECT(exit_item), "activate",
                                  GTK_SIGNAL_FUNC(destroy), (gpointer) "file.quit");
        gtk_widget_show(new_item);
        gtk_widget_show(save_item);
        gtk_widget_show(exit_item);
        menu_bar = gtk_menu_bar_new();
        gtk_container_add(GTK_CONTAINER(window), menu_bar);
        gtk_widget_show(menu_bar);
        file_item = gtk_menu_item_new_with_label("File");
        gtk_widget_show(file_item);
        gtk_menu_item_set_submenu(GTK_MENU_ITEM(file_item), file_menu);
        gtk_menu_bar_append(GTK_MENU_BAR(menu_bar), file_item);
        /*fine della creazione del menu*/
	 gtk_signal_connect(GTK_OBJECT(window), "destroy",
                           GTK_SIGNAL_FUNC(destroy), NULL);
        gtk_container_add(GTK_CONTAINER(window), button);
        gtk_widget_show(button);
        gtk_widget_show(window);
        gtk_main();
        return(0);
}
-- 
Non c'è più forza nella normalità: c'è solo monotonia.

Ciao
Non so se ho capito quel che vuoi fare, ma se vuoi far vedere
il pulsante INSIEME al menu, li devi impacchettare in un vbox o un hbox
-------------------------------------------------------------------------
#include <gtk/gtk.h>
gint 
delete_event (GtkWidget * widget, GdkEvent * event, gpointer data)
{
  g_print ("Fine programma");
  return (FALSE);
}
void 
destroy (GtkWidget * widget, gpointer data)
{
  gtk_main_quit ();
}
int 
main (int argc, char *argv[])
{
  GtkWidget *window;
  GtkWidget *button;
  GtkWidget *file_menu;
  GtkWidget *new_item;
  GtkWidget *save_item;
  GtkWidget *exit_item;
  GtkWidget *file_item;
  GtkWidget *menu_bar;
  GtkWidget *hbox;
  gtk_init (&argc, &argv);
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  button = gtk_button_new_with_label ("Vai!");
  gtk_object_set_data (GTK_OBJECT (window), "button", button);
  hbox = gtk_hbox_new (FALSE, 0);
  gtk_object_set_data (GTK_OBJECT (window), "hbox", hbox);
  gtk_widget_show (hbox);
  gtk_container_add (GTK_CONTAINER (window), hbox);
  /* creazione del menu */
  file_menu = gtk_menu_new ();
  new_item = gtk_menu_item_new_with_label ("Nuovo");
  save_item = gtk_menu_item_new_with_label ("Salva");
  exit_item = gtk_menu_item_new_with_label ("Esci");
  gtk_menu_append (GTK_MENU (file_menu), new_item);
  gtk_menu_append (GTK_MENU (file_menu), save_item);
  gtk_menu_append (GTK_MENU (file_menu), exit_item);
  gtk_signal_connect_object (GTK_OBJECT (exit_item), "activate",
                         GTK_SIGNAL_FUNC (destroy), (gpointer) "file.quit");
  gtk_widget_show (new_item);
  gtk_widget_show (save_item);
  gtk_widget_show (exit_item);
  menu_bar = gtk_menu_bar_new ();
  gtk_container_add (GTK_CONTAINER (hbox), menu_bar);
  gtk_widget_show (menu_bar);
  file_item = gtk_menu_item_new_with_label ("File");
  gtk_widget_show (file_item);
  gtk_menu_item_set_submenu (GTK_MENU_ITEM (file_item), file_menu);
  gtk_menu_bar_append (GTK_MENU_BAR (menu_bar), file_item);
  /*fine della creazione del menu */
  gtk_signal_connect (GTK_OBJECT (window), "destroy",
                      GTK_SIGNAL_FUNC (destroy), NULL);
  gtk_container_add (GTK_CONTAINER (hbox), button);
  gtk_widget_show (button);
  gtk_widget_show (window);
  gtk_main ();
  return (0);
}
------------------------------------------------------------------------------
-- 
" Ho visto cose, che voi umani non potreste immaginare.
Sequenze RTSCTS in fiamme al largo dei bastioni di Termios.
Ho visto stringhe C balenare nel buio vicino alle porte UART.
E tutti quei momenti andranno perduti per sempre, come lacrime nella pioggia.
E' tempo di morire... "

 
La risposta te l'ha gia' data Alvaro, ma io ti consiglio di usare Glade,
ti libera da gran parte della fatica della progettazione
dell'interfaccia e ti lascia piu' tempo per realizzare le parti
specifiche della tua applicazione.
Ciao
Roberto

 specifiche della tua applicazione.
sicuramente hai  ragione, am  è la  prima volta che  sviluppo con  GTK e
ignoravo glade. Mi passi l'url?


ignoravo glade. Mi passi l'url?
http://glade.pn.org
se hai la redhat 6.1 ce l'hai sul cd...
