- 论坛徽章:
- 0
|
謝謝 whyglinux,
我就你的程序作了一些修改. 這個方法就是我現在程序的方法. 請你再給我些指導. 謝謝.
- #include <gtk/gtk.h>
- // Global variables.
- typedef struct main_global_struct
- {
- GtkWidget* main_window;
- }main_global_struct;
- typedef struct pass_global_struct
- {
- GtkWidget* pass_window;
- }pass_global_struct;
- static main_global_struct main_main;
- static pass_global_struct pass_pass;
- void create_main(void);
- void create_pass(void);
- void
- on_main_window_destroy( GtkWidget *widget,
- gpointer data )
- {
- gtk_main_quit();
- }
- // Clicking OK button will show main window and close pass window.
- void
- on_ok_button_clicked( GtkWidget *widget,
- gpointer data )
- {
- //gtk_widget_show( main_main.main_window );
- create_main();
- gtk_widget_destroy( GTK_WIDGET(pass_pass.pass_window) );
- }
- void create_main(void)
- {
- // The main window.
- main_main.main_window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
- gtk_window_set_title( GTK_WINDOW(main_main.main_window), "Main" );
- g_signal_connect( G_OBJECT(main_main.main_window), "destroy",
- G_CALLBACK(on_main_window_destroy), NULL );
- gtk_widget_show(main_main.main_window);
- }
- void create_pass(void)
- {
- GtkWidget* ok_button;
- // The pass window.
- pass_pass.pass_window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
- gtk_window_set_title( GTK_WINDOW(pass_pass.pass_window), "Pass" );
- // The OK button.
- ok_button = gtk_button_new_from_stock( GTK_STOCK_OK );
- g_signal_connect( G_OBJECT(ok_button), "clicked",
- G_CALLBACK(on_ok_button_clicked), NULL);
- gtk_container_add( GTK_CONTAINER(pass_pass.pass_window), ok_button );
- gtk_widget_show( ok_button );
- gtk_widget_show(pass_pass.pass_window);
- }
- int main(int argc, char *argv[])
- {
- gtk_init(&argc, &argv);
- create_pass();
- gtk_main();
- return 0;
- }
复制代码 |
|