一、滚动窗口构件
滚动窗口构件(GtkScrolledWindow)用于创建一个可滚动区域,并将其他构件放入其中。可以在滚动窗口中插入任何其他构件,在其内部的构件不论尺寸大小都可以通过滚动条访问到。
1.
名称::
gtk_scrolled_window_new
功能:
创建滚动窗口构件
函数原形:
GtkWidget *gtk_scrolled_window_new( GtkAdjustment *hadjustment,
GtkAdjustment *vadjustment );
参数: hadjustment vadjustment
返回值: 新的滚动窗口构件
第一个参数是水平方向的调整对象,第二个参数是垂直方向的调整对象。它们总是设置为NULL。
2.
名称::
gtk_scrolled_window_set_policy
功能:
设置滚动条出现的方式
函数原形:
void gtk_scrolled_window_set_policy( GtkScrolledWindow *scrooled_window, GtkPolicyType hscrollbar_policy, GtkPolicyType vscrollbar_policy );
参数:
hscrollbar_policy 水平滚动条出现的方式
vscrollbar_policy 垂直滚动条的方式
返回值: 无
滚动条的方式取值可以为GTK_POLICY_AUTOMATIC或GTK_POLICY_ALWAYS。当要求滚动条根据需要自动出现时,可设为GTK_POLICY_AUTOMATIC;若设为GTK_POLICY_ALWAYS,滚动条会一直出现在滚动窗口构件上。
3.
名称::
gtk_scrolled_window_add_with_viewport
功能:
将子构件添加到滚动窗口构件
函数原形:
void gtk_scrolled_window_add_with_viewport(GtkScrolledWindow *scrolled_window, GtkWidget *child);
参数: scrolled_window 滚动窗口构件 child 子构件
返回值: 无
---------------------------------------------------------------------------------
下面是滚动窗口构件的程序例子:
#include
int main(int argc,char *argv[ ])
{
GtkWidget *window;
GtkWidget *scrolled;
GtkWidget *text;
gtk_init(&argc,&argv);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window,200,200);
gtk_signal_connect(GTK_OBJECT(window),”destroy”,G_CALLBACK(gtk_main_quit),NULL);
scrolled=gtk_scrolled_window_new(NULL,NULL); /*创建滚动窗口构件*/
gtk_container_add(GTK_CONTAINER(window),scrolled);/*将滚动窗口构件加入窗体*/
gtk_widget_show(scrolled);/*显示滚动窗口构件*/
text=gtk_text_view_new();/*创建文本视图构件*/
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled),text);/*将文本视图构件加入滚动窗口*/
gtk_widget_show(text);
gtk_widget_show(window);
gtk_main();
}
滚动窗口构件(GtkScrolledWindow)用于创建一个可滚动区域,并将其他构件放入其中。可以在滚动窗口中插入任何其他构件,在其内部的构件不论尺寸大小都可以通过滚动条访问到。
1.
名称::
gtk_scrolled_window_new
功能:
创建滚动窗口构件
函数原形:
GtkWidget *gtk_scrolled_window_new( GtkAdjustment *hadjustment,
GtkAdjustment *vadjustment );
参数: hadjustment vadjustment
返回值: 新的滚动窗口构件
第一个参数是水平方向的调整对象,第二个参数是垂直方向的调整对象。它们总是设置为NULL。
2.
名称::
gtk_scrolled_window_set_policy
功能:
设置滚动条出现的方式
函数原形:
void gtk_scrolled_window_set_policy( GtkScrolledWindow *scrooled_window, GtkPolicyType hscrollbar_policy, GtkPolicyType vscrollbar_policy );
参数:
hscrollbar_policy 水平滚动条出现的方式
vscrollbar_policy 垂直滚动条的方式
返回值: 无
滚动条的方式取值可以为GTK_POLICY_AUTOMATIC或GTK_POLICY_ALWAYS。当要求滚动条根据需要自动出现时,可设为GTK_POLICY_AUTOMATIC;若设为GTK_POLICY_ALWAYS,滚动条会一直出现在滚动窗口构件上。
3.
名称::
gtk_scrolled_window_add_with_viewport
功能:
将子构件添加到滚动窗口构件
函数原形:
void gtk_scrolled_window_add_with_viewport(GtkScrolledWindow *scrolled_window, GtkWidget *child);
参数: scrolled_window 滚动窗口构件 child 子构件
返回值: 无
---------------------------------------------------------------------------------
下面是滚动窗口构件的程序例子:
#include
int main(int argc,char *argv[ ])
{
GtkWidget *window;
GtkWidget *scrolled;
GtkWidget *text;
gtk_init(&argc,&argv);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window,200,200);
gtk_signal_connect(GTK_OBJECT(window),”destroy”,G_CALLBACK(gtk_main_quit),NULL);
scrolled=gtk_scrolled_window_new(NULL,NULL); /*创建滚动窗口构件*/
gtk_container_add(GTK_CONTAINER(window),scrolled);/*将滚动窗口构件加入窗体*/
gtk_widget_show(scrolled);/*显示滚动窗口构件*/
text=gtk_text_view_new();/*创建文本视图构件*/
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled),text);/*将文本视图构件加入滚动窗口*/
gtk_widget_show(text);
gtk_widget_show(window);
gtk_main();
}