资源描述:
《gtk编程——对话框构件、标尺构件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、对话框构件对话框构件非常简单,事实上它仅仅是一个预先组装了几个构件到里面的窗口。对话框的定义如下:structGtkDialog{GtkWindowwindow;GtkWidget*vbox;GtkWidget*action_area;};从上面可以看到,对话框只是简单地创建一个窗口,并在顶部组装一个GtkVBox,然后在GtkVBox中组装一个分隔线,再加一个称为“活动区”的GtkHBox。我们可以在该“活动区”添加一些按纽。对话框用gtk_dialog_new创建。1.名称::gtk_dial
2、og_new功能:创建对话框构件头文件:#include函数原形:GtkWidget*gtk_dialog_new(void);参数:无返回值:新的对话框构件#includevoidbutton_event(GtkWidget*widget,gpointer*data);voiddestroy(GtkWidget*widget,gpointer*data);intmain(intargc,char*argv[]){GtkWidget*window;GtkWi
3、dget*button;gtk_init(&argc,&argv);window=gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_signal_connect(GTK_OBJECT(window),”destroy”,G_CALLBACK(gtk_main_quit),NULL);button=gtk_button_new_with_label(“Exit”);gtk_container_add(GTK_CONTAINER(window),button);gtk_sig
4、nal_connect(GTK_OBJECT(button),”clicked”,G_CALLBACK(button_event),NULL);gtk_widget_show(button);gtk_widget_show(window);gtk_main();}voidbutton_event(GtkWidget*widget,gpointer*data){GtkWidget*button;GtkWidget*dialog;dialog=gtk_dialog_new();button=gtk_but
5、ton_new_with_label(“Yes”);gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),button,TRUE,TRUE,0);gtk_signal_connect(GTK_OBJECT(button),”clicked”,G_CALLBACK(gtk_main_quit),NULL);gtk_widget_show(button);button=gtk_button_new_with_label(“No”);gtk_
6、box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),button,TRUE,TRUE,0);gtk_signal_connect(GTK_OBJECT(button),”clicked”,G_CALLBACK(destroy),dialog);gtk_widget_show(button);gtk_widget_show(dialog);}voiddestroy(GtkWidget*widget,gpointer*data){gtk_widg
7、et_destroy(GTK_WIDGET(data));}程序运行后会得到如下界面:当用户点击按纽会得到如下对话框。如果用户电击Yes程序退出,如果用户点击No对话框消失。二、标尺构件标尺构件(GtkRuler)一般用于在给定窗口中指示鼠标指针的位置。一个窗口可以有一个横跨整个窗口宽度的水平标尺和一个占据整个窗口高度的垂直标尺。标尺上有一个小三角形的指示器标出鼠标指针相对于标尺的精确位置。有两种标尺构件:GtkHRuler(水平)和GtkVRuler(垂直)。用gtk_hruler_new创建水平标
8、尺构件,用gtk_vruler_new创建垂直标尺构件。2.名称::gtk_hruler_newgtk_vruler_new功能:创建标尺构件头文件:#include函数原形:GtkWidget*gtk_hruler_new(void);/*水平标尺*/GtkWidget*gtk_vruler_new(void);/*垂直标尺*/参数:无返回值:新的标尺构件3.名称::gtk_ruler_set_metric功能:设置标尺构件的度