- 论坛徽章:
- 0
|
- #include<gtk/gtk.h>
- int main(int argc,char *argv[]){
- GtkWidget *vbox;
- GtkWidget *menubar;
- GtkWidget *filemenu;
- GtkWidget *file;
- GtkWidget *new;
- GtkWidget *open;
- GtkWidget *quit;
- GtkWidget *window;
- GtkWidget *table;
- GtkWidget *label1;
- GtkWidget *label2;
- GtkWidget *label3;
- GtkWidget *entry1;
- GtkWidget *entry2;
- GtkWidget *entry3;
- gtk_init(&argc, &argv);
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
- gtk_window_set_default_size(GTK_WINDOW(window),250,200);
- gtk_window_set_title(GTK_WINDOW(window),"Information");
- gtk_container_set_border_width(GTK_CONTAINER(window),10);
- vbox = gtk_vbox_new(FALSE, 0);
- gtk_container_add(GTK_CONTAINER(window),vbox);
- table = gtk_table_new(3, 2, FALSE);
- gtk_container_add(GTK_CONTAINER(window),table);
- menubar = gtk_menu_bar_new();
- filemenu = gtk_menu_new();
- file = gtk_menu_item_new_with_label("FILE");
- new = gtk_menu_item_new_with_label("New");
- open = gtk_menu_item_new_with_label("Open");
- quit = gtk_menu_item_new_with_label("Quit");
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), filemenu);
- gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), new);
- gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), open);
- gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), quit);
- gtk_menu_shell_append(GTK_MENU_SHELL(menubar), file);
- gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 3);
- label1 = gtk_label_new("Name");
- label2 = gtk_label_new("Student No.");
- label3 = gtk_label_new("Major");
- gtk_table_attach(GTK_TABLE(table),label1, 0, 3, 0, 1,
- GTK_FILL | GTK_SHRINK,GTK_FILL | GTK_SHRINK, 5, 5);
- gtk_table_attach(GTK_TABLE(table),label2, 0, 3, 1, 2,
- GTK_FILL | GTK_SHRINK,GTK_FILL | GTK_SHRINK, 5, 5);
- gtk_table_attach(GTK_TABLE(table),label3, 0, 3, 2, 3,
- GTK_FILL | GTK_SHRINK,GTK_FILL | GTK_SHRINK, 5, 5);
- entry1 = gtk_entry_new();
- entry2 = gtk_entry_new();
- entry3 = gtk_entry_new();
- gtk_table_attach(GTK_TABLE(table),entry1, 1, 4, 0, 1,
- GTK_FILL | GTK_SHRINK,GTK_FILL | GTK_SHRINK, 5, 5);
- gtk_table_attach(GTK_TABLE(table),entry2, 1, 4, 1, 2,
- GTK_FILL | GTK_SHRINK,GTK_FILL | GTK_SHRINK, 5, 5);
- gtk_table_attach(GTK_TABLE(table),entry3, 1, 5, 2, 3,
- GTK_FILL | GTK_SHRINK,GTK_FILL | GTK_SHRINK, 5, 5);
- gtk_widget_show(table);
- gtk_widget_show(label1);
- gtk_widget_show(label2);
- gtk_widget_show(label3);
- gtk_widget_show(entry1);
- gtk_widget_show(entry2);
- gtk_widget_show(entry3);
- gtk_widget_show(window);
- gtk_widget_show_all(window);
- g_signal_connect(window, "destroy",G_CALLBACK(gtk_main_quit),NULL);
- g_signal_connect_swapped(G_OBJECT(window),"destroy",
- G_CALLBACK(gtk_main_quit),NULL);
- g_signal_connect(G_OBJECT(quit),"activate",G_CALLBACK(gtk_main_quit),NULL);
- gtk_main();
- return 0;
- }
复制代码 提示的警告是这个,该如何改进?
Gtk-WARNING **: Attempting to add a widget with type GtkTable to a GtkWindow, but as a GtkBin subclass a GtkWindow can only contain one widget at a time; it already contains a widget of type GtkVBox |
|