你是不是暗恋我,那就给我发个消息呀,让我知道o(∩∩)o
分类: LINUX
2012-12-19 21:01:22
http://blog.csdn.net/aladdin_wang/article/details/1912406
我对C的dll不太了解。于是,我选择先做界面。
由于VPR的参数比较多,全部放在一个窗口内,显得比较杂乱。所以,我决定采用notebook容器,它可以将控件放在多个page内显示,用户可以使用tab标签选择相应的page.
Gtk的notebook最常用的函数如下:
l GtkWidget *gtk_notebook_new( void );
这个函数的作用是新建一个notebook构件。
一旦创建了笔记本构件,就可以使用一系列的函数操作该构件。下面将对它们进行分别讨论。
先看一下怎样定位页面指示器—或称页标签,可以有四种位置:上、下、左或右。
l void gtk_notebook_set_tab_pos( GtkNotebook *notebook,
GtkPositionType pos );
GtkPositionType参数可以取以下几个值,从字面上很容易理解它们的含义:
GTK_POS_LEFT
GTK_POS_RIGHT
GTK_POS_TOP
GTK_POS_BOTTOM
GTK_POS_TOP是缺省值。
下面看一下怎样向笔记本中添加页面。有三种方法向笔记本中添加页面。前两种方法是非常相似的。
l void gtk_notebook_append_page( GtkNotebook *notebook,
GtkWidget *child,
GtkWidget *tab_label );
l void gtk_notebook_prepend_page( GtkNotebook *notebook,
GtkWidget *child,
GtkWidget *tab_label );
这些函数通过向插入页面到笔记本的后端(append)或前端(prepend)来添加页面。child是放在笔记本页面里的子构件,tab_label是要添加的页面的标签。child构件必须另外创建,一般是一个包含一套选项设置的容器构件,比如一个表格。
最后一个添加页面的函数与前两个函数类似,不过允许指定页面插入的位置。
l void gtk_notebook_insert_page( GtkNotebook *notebook,
GtkWidget *child,
GtkWidget *tab_label,
gint position );
其中的参数与_append_和_prepend_函数一样,还包含一个额外参数,position。该参数指定页面应该插入到哪一页。注意,第一页位置为0。
前面介绍了怎样添加一个页面,下面介绍怎样从笔记本中删除一个页面。
l void gtk_notebook_remove_page( GtkNotebook *notebook,
gint page_num );
这个函数从notebook指定的笔记本中删除由page_num参数指定的页面。
用这个函数找出笔记本的当前页面:
l gint gtk_notebook_get_current_page( GtkNotebook *notebook );
下面两个函数将笔记本的页面向前或向后移动。对要操作的笔记本构件使用以下函数就可以了。注意:当笔记本正在最后一页时,调用 gtk_notebook_next_page() 函数,笔记本会跳到第一页。同样,如果笔记本在第一页,调用了函数 gtk_notebook_prev_page(),笔记本构件会跳到最后一页。
l void gtk_notebook_next_page( GtkNoteBook *notebook );
l void gtk_notebook_prev_page( GtkNoteBook *notebook );
下面这个函数设置“活动”页面。比如你想笔记本的第5页被打开,你将使用这个函数。不使用这个函数时笔记本默认显示第一页。
l void gtk_notebook_set_current_page( GtkNotebook *notebook,
gint page_num );
关于notebook我所用到的函数就这么多了。界面部分,我还用到了GtkFrame,可以起到分栏的效果。简单介绍一下frame的API吧。
)框架可以用下面的函数创建:
l GtkWidget *gtk_frame_new( const gchar *label );
标签缺省放在框架的左上角。传递NULL值作为label参数时,框架不显示标签。标签文本可以用下面的函数改变。
l void gtk_frame_set_label( GtkFrame *frame, const gchar *label );标签的位置可以用下面的函数改变:
l void gtk_frame_set_label_align( GtkFrame *frame, gfloat xalign, gfloat yalign ); xalign和yalign参数取值范围介于0.0和1.0之间。xalign指定标签在框架构件上部水平线上的位置。yalign目前还没有被使用。xalign的缺省值是0.0,它将标签放在框架构件的最左端。 差不多我所用到的函数我都列在上面了。