马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这一讲讲解GtkNotebook、GtkTable和GtkExpander部件
GtkNotebook
GtkNotebook就是大名鼎鼎的选项卡部件,在很多场合都能看到它的身影,例如:多选项卡浏览器,Windows任务管理器等。
#include <gtk/gtk.h>
int main(int argc,char *argv[])
{
GtkWidget *window,*notebook,*label_title_1,*label_title_2,*label_title_3;
GtkWidget *button_content_1,*button_content_2,*button_content_3;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window),"hello fishc - GtkNotebook");
gtk_widget_set_size_request(window,300,200);
notebook = gtk_notebook_new();
gtk_container_add(GTK_CONTAINER(window), notebook);
label_title_1 = gtk_label_new("title 1");
label_title_2 = gtk_label_new("title 2");
label_title_3 = gtk_label_new("title 3");
button_content_1 = gtk_button_new_with_label("content 1");
button_content_2 = gtk_button_new_with_label("content 2");
button_content_3 = gtk_button_new_with_label("content 3");
gtk_notebook_append_page(GTK_NOTEBOOK(notebook),button_content_1,label_title_1);
gtk_notebook_append_page(GTK_NOTEBOOK(notebook),button_content_2,label_title_2);
gtk_notebook_append_page(GTK_NOTEBOOK(notebook),button_content_3,label_title_3);
gtk_widget_show_all(window);
gtk_main ();
return 0;
}
这个部件使用简单,就是一个gtk_notebook_append_page函数用来添加子部件和选项卡头文本。
第二个参数为子部件,第三个参数为头文本,如果第三个参数设置为NULL,则头文本以第N页方式递增,如:第 1 页,第 2 页.......
GtkTable
GtkTable和前面讲过的GtkGrid是一样的东西,文档里注明:在GTK3.4版本后不提倡使用gtk_table_new函数,建议使用gtk_grid_new函数来创建表格。
GtkExpander
GtkExpander是一个可伸缩的小部件,类似与QQ中的好友分组,点击可以切换展开/收缩状态。
下图是点击展开后的效果:
例程:#include <gtk/gtk.h>
int main(int argc,char *argv[])
{
GtkWidget *window,*expander,*label_content;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window),"hello fishc - GtkExpander");
gtk_widget_set_size_request(window,300,200);
expander = gtk_expander_new("Click to view detail");
gtk_container_add(GTK_CONTAINER(window), expander);
label_content = gtk_label_new("something detail.");
gtk_container_add(GTK_CONTAINER(expander), label_content);
gtk_widget_show_all(window);
gtk_main ();
return 0;
}
|