鱼C论坛

 找回密码
 立即注册
查看: 2426|回复: 4

[技术交流] C语言GUI程序设计-GTK图文系列-GtkWidget之容器(四)

[复制链接]
发表于 2014-10-28 21:50:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这一讲讲解GtkNotebook、GtkTable和GtkExpander部件

GtkNotebook

GtkNotebook就是大名鼎鼎的选项卡部件,在很多场合都能看到它的身影,例如:多选项卡浏览器,Windows任务管理器等。

gtk_notebook.png

#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中的好友分组,点击可以切换展开/收缩状态。

下图是点击展开后的效果:

gtk_expander.png


例程:
#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;
}


评分

参与人数 2荣誉 +9 鱼币 +11 收起 理由
大黑鱼 + 4 + 6 支持楼主!
拈花小仙 + 5 + 5 热爱鱼C^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-28 22:01:52 | 显示全部楼层
建个淘帖,自己把帖淘起来吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-10-28 22:09:31 | 显示全部楼层
强烈支持楼主
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-10-29 09:38:37 | 显示全部楼层
支持楼主。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-29 19:10:59 | 显示全部楼层
拈花小仙 发表于 2014-10-28 22:01
建个淘帖,自己把帖淘起来吧

等这个系列写完了  我会整理个目录贴出来给大家  当作字典来用  要用到哪个Widget来查就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 18:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表