GTK常用控件之笔记本控件( GtkNotebook )

笔记本控件,可以让用户标签式地切换多个界面。当我们需要多窗口切换时,使用笔记本控件是一个明智的选择。

笔记本控件的创建:

GtkWidget *gtk_notebook_new(void);

返回值:笔记本控件指针

设置页标签的位置:

void gtk_notebook_set_tab_pos( GtkNotebook *notebook,

GtkPositionType pos );

notebook:笔记本控件

pos取值如下:

GTK_POS_LEFT:   左

GTK_POS_RIGHT:  右

GTK_POS_TOP:    上

GTK_POS_BOTTOM: 下

追加页面:

gint gtk_notebook_append_page(

GtkNotebook *notebook,

GtkWidget *child,

GtkWidget *tab_label );

notebook: 容纳别的控件的笔记本

child:       放在笔记本页面里的子控件

tab_label:要添加页面的标题名

返回值:成功返回值页面值(从0开始),失败返回-1

在指定位置添加页面(从0开始):

gint gtk_notebook_insert_page(

GtkNotebook *notebook,

GtkWidget *child,

GtkWidget *tab_label,

gint position );

notebook: 容纳别的控件的笔记本

child:       放在笔记本页面里的子控件

tab_label:要添加页面的标题名

position:页面的位置,从0开始,如果-1代表添加到最后

返回值:成功返回值页面值(从0开始),失败返回-1

设置起始页,从0开始算,相当于设置第几个页面显示:

void gtk_notebook_set_current_page(

GtkNotebook *notebook,

gint page_num );

notebook:要设置的笔记本控件

page_num:页面数

常用信号:"switch-page"

当切换页面时,会触发"switch-page"信号

例子代码如下:

#include <gtk/gtk.h>

void deal_switch_page(GtkNotebook *notebook, gpointer page, guint page_num, gpointer data)
{
        printf("我是第%d个页面\n", page_num+1);
        return;
}

int main(int argc, char *argv[])
{
        //1.gtk环境
        gtk_init(&argc, &argv);

        //2.创建一个window
        GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        //设置窗口大小
        gtk_widget_set_size_request(window, 400, 300);

        //3.创建笔记本控件
        GtkWidget *notebook = gtk_notebook_new();
        gtk_container_add(GTK_CONTAINER(window), notebook);

        //4.页标签的位置,可以有四种位置:上、下、左或右
        gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_TOP);//上面

        //5.创建一个水平布局
        GtkWidget *hbox = gtk_hbox_new(TRUE, 5);
        gtk_container_add(GTK_CONTAINER(window), hbox);

        //6.第一个页面
        GtkWidget *label = gtk_label_new("Page one");

        GtkWidget *button1 = gtk_button_new_with_label("我是第一个页面");
        gtk_container_add(GTK_CONTAINER(hbox), button1);

        GtkWidget *button2 = gtk_button_new_with_label("我是第一个页面的按钮");
        gtk_container_add(GTK_CONTAINER(hbox), button2);

        gtk_notebook_append_page(GTK_NOTEBOOK(notebook), hbox, label);

        //7.第二个页面
        label = gtk_label_new("Page two");
        hbox = gtk_hbox_new(TRUE, 5);
        button1 = gtk_button_new_with_label("我是第二个页面");
        gtk_container_add(GTK_CONTAINER(hbox), button1);

         button2 = gtk_button_new_with_label("我是第二个页面的按钮");
         gtk_container_add(GTK_CONTAINER(hbox), button2);

         gtk_notebook_append_page(GTK_NOTEBOOK(notebook), hbox, label);

         //8.第三个页面,在指定位置添加页面,从0开始
         label = gtk_label_new("page three");
         button1 = gtk_button_new_with_label("我是通过insert_page实现的,第三页面");
         gtk_notebook_insert_page(GTK_NOTEBOOK(notebook), button1, label, 2);

         //9.处理信号,当切换页面的时候,会触发“switch-page”信号
         g_signal_connect(notebook, "switch-page", G_CALLBACK(deal_switch_page), NULL);

         //10.设置默认起始页为第二页,从0开始算,那就是1
         gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook),1);

         //11.显示所有网页
         gtk_widget_show_all(window);

         //12.主事件循环
         gtk_main();

        return 0;
}

运行结果:

源码下载:http://download.csdn.net/download/lianghe_work/8945145

转自:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 22:03:24

GTK常用控件之笔记本控件( GtkNotebook )的相关文章

GTK常用控件之图片控件( GtkImage )

图片控件和标签的作用很类似,都是作为显示用的,只是图片控件显示的内容是图片. 图片控件的创建: GtkWidget *gtk_image_new_from_file( const gchar *filename ); filename:图片的名字,带路径的话需要加上路径( 相对或绝对 ) 返回值:图片控件指针 通过上面方法创建的图片控件,以图片默认大小来显示,不能修改其大小.如果要改变图片的大小,我们要借助图片资源对象GdkPixbuf,需要注意的是,GdkPixbuf不属于控件类,它以 Gdk

(转载)VS2010/MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)

因为私人问题,鸡啄米暂停更新了几天,首先向关注鸡啄米动态的朋友说一声抱歉. 言归正传,鸡啄米上一节中讲了编辑框的用法,本节继续讲解常用控件--按钮控件的使用. 按钮控件简介 按钮控件包括命令按钮(Button).单选按钮(Radio Button)和复选框(Check Box)等.命令按钮就是我们前面多次提到的狭义的按钮控件,用来响应用户的鼠标单击操作,进行相应的处理,它可以显示文本也可以嵌入位图.单选按钮使用时,一般是多个组成一组,组中每个单选按钮的选中状态具有互斥关系,即同组的单选按钮只能有

Android02.常用布局及基本UI控件

一.Android学习API指南:[了解] 1. 应用的组成部分   App Components 1.1. 应用的基本原理    App Fundamentals 1.2. Activity      Activities 1.2.1. 片段    Fragments 1.2.2. 加载器     Loaders 1.2.3. 任务和返回堆    Tasks and Back Stack 1.3. Service服务   Services 1.3.1. 绑定服务     Bound Servi

【读书笔记-《Android游戏编程之从零开始》】8.Android 游戏开发常用的系统控件(系统控件常见问题)

Android 中常用的计量单位Android有时候需要一些计量单位,比如在布局Layout文件中可能需要指定具体单位等.常用的计量单位有:px.dip(dp).sp,以及一些不常用的pt.in.mm.下面详细介绍下这些计量单位之间的区别和联系.in:英寸(长度单位):mm:毫米(长度单位):pt:磅/点,1/72英寸(一个标准的长度单位):sp:全名 scaled pixels-best for text size,放大像素,与刻度无关,可以根据用户的字体大小就行缩放,主要用来处理字体的大小:

VS2010-MFC(常用控件:按钮控件Button、Radio Button和Check Box)

转自:http://www.jizhuomi.com/software/182.html 按钮控件简介 按钮控件包括命令按钮(Button).单选按钮(Radio Button)和复选框(Check Box)等.命令按钮就是我们前面多次提到的狭义的按钮控件,用来响应用户的鼠标单击操作,进行相应的处理,它可以显示文本也可以嵌入位图.单选按钮使用时,一般是多个组成一组,组中每个单选按钮的选中状态具有互斥关系,即同组的单选按钮只能有一个被选中. 命令按钮是我们最熟悉也是最常用的一种按钮控件,而单选按钮

VS2010/MFC常用控件:图片控件Picture Control

图片控件Picture Control 本节主要讲一种简单实用的控件,图片控件Picture Control.我们可以在界面某个位置放入图片控件,显示图片以美化界面. 图片控件简介 图片控件和前面讲到的静态文本框都是静态文本控件,因此两者的使用方法有很多相同之处,所属类都是CStatic类,有关成员函数已在前面介绍,这里就不重复了. 图片控件静态和动态加载图片 鸡啄米下面为大家演示如何为图片控件静态和动态加载位图图片. 1. 图片控件静态加载图片 1)创建一个基于对话框的MFC工程,名称设置为“

VS2010-MFC(常用控件:图片控件Picture Control)

转自:http://www.jizhuomi.com/software/193.html 本节主要讲一种简单实用的控件,图片控件Picture Control.我们可以在界面某个位置放入图片控件,显示图片以美化界面. 图片控件简介 图片控件和前面讲到的静态文本框都是静态文本控件,因此两者的使用方法有很多相同之处,所属类都是CStatic类,有关成员函数已在前面介绍,这里就不重复了. 图片控件静态和动态加载图片 下面为大家演示如何为图片控件静态和动态加载位图图片. 1. 图片控件静态加载图片 1)

Winform控件之菜单控件,工具栏控件和状态栏控件

菜单是用户获取应用程序中主要功能和实用程序的主要途径,如新建文件,打开文件等,这就需要用到菜单控件(MenuStrip).工具栏另一种获取应用程序主要功能的常用方法,比起菜单要直观,这就需要用到工具栏控件(ToolStrip).状态栏用于显示用户状态的简短信息,这就需要用到状态栏控件(StatusStrip). 一,MenuStrip控件和ContenxMenuStrip控件 MenuStrip控件是由System.Windows.Forms.MenuStrip类提供的,取代了以前的MainMe

Windows应用程序高级控件之ListView控件

ListView控件---列表视图控件 用途:显示带图标的项列表,其中可以显示大图标.小图标和数据 ListView控件的常用属性: View属性:设置项在控件中的显示方式,View属性的值有以下几种 Details       每个项显示在不同的行上 LargeIcon     每个项都显示为一个最大的图标,下面有标签,是默认的视图模式 List          每个项显示为一个小图标,右边带标签,各项排列在列中,没有列表头 SmallIcon     每个项显示为小图标,右边带标签 Tit