GTK入门学习:布局容器之水平布局

如果我们希望窗口里多放添加几个控件,直接添加是不成功的,因为窗口只能容纳一个控件的容器。这时候,我们需要借助布局容器,我们先把布局容器添加到窗口里,然后再把所需要添加的控件放在布局容器里。

布局容器的主要分类:水平布局( GtkHBox)、垂直布局(GtkVBox )、表格布局(GtkTable)、固定布局(GtkFixed )。

水平布局容器:

水平布局容器的创建:

GtkWidget *gtk_hbox_new( gboolean homogeneous,

gint spacing );

homogeneous:容器内控件是否大小一致( gboolean 取值为TRUE 或 FALSE )

spacing:控件之间的间隔( 以像素点为单位 ),gint相当于 C语言的int

返回值:水平布局控件指针

容器添加添加控件:

void gtk_container_add(GtkContainer *container,

GtkWidget *widget);

container:容纳控件的容器

widget:要添加的控件

显示容器上所有控件

void gtk_widget_show_all(GtkWidget *widget);

widget:需要显示的控件

完整代码如下:

#include <gtk/gtk.h>

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

        //2.创建一个窗口
        //GtkWidget *window = gtk_window_new(GTK_WINDOW_POPUP);

        GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

        //设置窗口标题
        gtk_window_set_title(GTK_WINDOW(window), "hbox");

        //3.1创建一个水平容器
        GtkWidget *hbox = gtk_hbox_new(TRUE, 10);
        //3.2将水平容器加入到窗口中
        gtk_container_add(GTK_CONTAINER(window), hbox);

        //4.1.1创建按钮button1
        GtkWidget *button1 = gtk_button_new_with_label("button1");
        //4.1.2将button1加入到hbox中
        gtk_container_add(GTK_CONTAINER(hbox), button1);

        //4.2.1创建按钮button2
        GtkWidget *button2 = gtk_button_new_with_label("button2");
        //4.2.2将button2加入到hbox
        gtk_container_add(GTK_CONTAINER(hbox), button2);

        //4.3.1创建按钮button2
        GtkWidget *button3 = gtk_button_new_with_label("button3");
        //4.3.2将button2加入到hbox
        gtk_container_add(GTK_CONTAINER(hbox), button3);

        //5.显示所有文件
        gtk_widget_show_all(window);

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

        return 0;
}

运行结果:

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

转自:http://blog.csdn.net/tennysonsky/article/details/42741907

阿斯达

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

时间: 2024-11-06 12:57:48

GTK入门学习:布局容器之水平布局的相关文章

GTK入门学习:布局容器之表格布局

学习水平和垂直布局容器后,我们几乎能布出任何风格的布局,只需要嵌套使用水平布局容器和垂直布局容器即可.假如我们要完成下图的布局,我们该怎么做呢? 1)创建一个垂直布局容器( A ) 2)创建一个水平布局容器( B ),一个close按钮( C ) 3)将水平布局容器和close按钮添加到垂直布局容器里( 将 B 和 C 添加到 A ) 4)创建button 1按钮( D ) 和 button 2按钮( E ) 5)再将button 1按钮 和 button 2按钮添加到水平布局容器里( 将 D

GTK入门学习:布局容器之固定布局

前面我们学习的水平.垂直和表格布局容器,控件会跟着容器大小的变化进行自动适应,而固定布局容器里的控件则不会跟着变化( 则固定不变 ). 固定布局的创建: GtkWidget *gtk_fixed_new(void); 返回值:固定布局容器指针 固定布局容器添加控件: void gtk_fixed_put( GtkFixed *fixed, GtkWidget *widget, gint x, gint y ); fixed:容纳控件的容器 widget:要添加的控件 x, y:控件摆放位置的起点

布局容器之固定布局

前面我们学习的水平.垂直和表格布局容器,控件会跟着容器大小的变化进行自动适应,而固定布局容器里的控件则不会跟着变化( 则固定不变 ). 固定布局的创建: GtkWidget *gtk_fixed_new(void); 返回值:固定布局容器指针 固定布局容器添加控件: void gtk_fixed_put( GtkFixed *fixed, GtkWidget *widget, gint x, gint y ); fixed:容纳控件的容器 widget:要添加的控件 x, y:控件摆放位置的起点

布局容器之表格布局

学习水平和垂直布局容器后,我们几乎能布出任何风格的布局,只需要嵌套使用水平布局容器和垂直布局容器即可.假如我们要完成下图的布局,我们该怎么做呢? 1)创建一个垂直布局容器( A ) 2)创建一个水平布局容器( B ),一个close按钮( C ) 3)将水平布局容器和close按钮添加到垂直布局容器里( 将 B 和 C 添加到 A ) 4)创建button 1按钮( D ) 和 button 2按钮( E ) 5)再将button 1按钮 和 button 2按钮添加到水平布局容器里( 将 D

GTK入门学习:布局容器之垂直布局

垂直布局和水平布局的用法基本是一样,无非是新建垂直布局容器接口,还有控件摆放的方向不同. 垂直布局容器的创建: GtkWidget *gtk_vbox_new( gboolean homogeneous, gint spacing ); 完整代码如下: #include <gtk/gtk.h> int main(int argc, char *argv[]) { //1.gtk初始化 gtk_init(&argc, &argv); //2.创建一个窗口 GtkWidget *w

GTK入门学习:布局练习之计算器

接下来,我们做一个布局练习,如下图: 我们用表格布局实现,表格布局参考坐标如下: 这里我们用到行编辑控件( GtkEntry ). 行编辑的创建: GtkWidget * gtk_entry_new(void); 返回值:行编辑指针行 编辑内容的设置: void gtk_entry_set_text (GtkEntry *entry,const gchar *text); entry: 行编辑 text: 需要设置的内容 设置行编辑是否允许编辑: void gtk_editable_set_ed

GTK入门学习:glade的使用

搭建好环境后,在终端敲 glade 即可启动glade工具. glade的整体框图: 常用控件选择区:列举了常用的控件,常用的有三类:顶层(主窗口等),容器(各种布局容器等),控制和显示(按钮.便签.图片控件等) 当鼠标放在控件时,会自动显示控件的中文文字,同时,还能人为设置,如下图: 界面编辑区:把控件拖放在这进行进行相应的布局 控件监视区:能够看到界面上所有的控件,同时,选中这个控件,可以看到这个控件的具体类型 属性编辑区:编辑选中控件的常用属性,如窗口设置标题.窗口类型.屏幕上显示位置等.

GTK入门学习:信号与回调函数

前面我们学习的GTK界面都是静态的,我们按下按钮它是没有响应的,如何让它有响应呢?接下来我们一起学习GTK的信号与回调函数. GTK采用了信号与回调函数来处理窗口外部传来的事件.消息或信号.当信号发生时,程序自动调用为信号连接的回调函数. 学习应用编程,我们会经常接触到"信号"这个名词.GTK中的"信号"实际上是一种软件中断."中断"在我们生活中经常遇到,譬如,我正在房间里打游戏,突然送快递的来了,把正在玩游戏的我给"中断"了

Docker入门学习2 ——容器基本操作

摘要:介绍Docker容器相关的操作命令. 知识点: run ps start attach exec top stop kill inspect rm logs images rmi pull push commit build 注:可以使用docker COMMAND --help来查看COMMAND的详细用法,本文只介绍常用的子集. 一.启动容器 启动之前未启动过的容器: docker run [-d] [-i] [-t] IMAGE [Command] [Arguments] · -d: