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创建按钮button3
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
阿斯达
GTK入门学习:布局容器之水平布局的更多相关文章
- GTK入门学习:布局容器之固定布局
前面我们学习的水平.垂直和表格布局容器,控件会跟着容器大小的变化进行自己主动适应.而固定布局容器里的控件则不会跟着变化( 则固定不变 ). 固定布局的创建: GtkWidget *gtk_fixed_ ...
- GTK入门学习:布局练习之计算器
接下来,我们做一个布局练习.例如以下图: 我们用表格布局实现,表格布局參考坐标例如以下: 这里我们用到行编辑控件( GtkEntry ). 行编辑的创建: GtkWidget * gtk_entry_ ...
- GTK入门学习:glade的使用
搭建好环境后,在终端敲 glade 就可以启动glade工具. glade的总体框图: 经常使用控件选择区:列举了经常使用的控件,经常使用的有三类:顶层(主窗体等).容器(各种布局容器等).控制和显示 ...
- 微信小程序开发入门学习(2):小程序的布局
概述 小程序的布局采用了和Css3中相同的 flex(弹性布局)方式,使用方法也类似(只是属性名不同而已). 水平排列 默认是从左向右水平依次放置组件,从上到下依次放置组件. 任何可视组件都需要使用样 ...
- 《精通CSS第3版》(6)内容布局(定位+水平布局)
- 第15.12节PyQt(Python+Qt)入门学习:可视化设计界面组件布局详解
一.引言 在Qt Designer中,在左边部件栏的提供了界面布局相关部件,如图: 可以看到共包含有四种布局部件,分别是垂直布局(Vertical Layout).水平布局(Horizontal La ...
- 零元学Expression Blend 4 - Chapter 8 用实例了解布局容器系列-「Grid」
原文:零元学Expression Blend 4 - Chapter 8 用实例了解布局容器系列-「Grid」 本系列将教大家以实做案例认识Blend 4 的布局容器,此章介绍的是Blend 4 里的 ...
- elementUI 学习入门之 container 布局容器
Container 布局容器 用于布局的容器组件,方便快速搭建页面基本结构 <el-container> : 外层容器.当子元素包含 <el-header> 或 <el- ...
- 学习WPF——WPF布局——了解布局容器
WPF布局工作内部原理 WPF渲染布局时主要执行了两个工作:测量和排列 测量阶段,容器遍历所有子元素,并询问子元素所期望的尺寸 排列阶段,容器在合适的位置放置子元素,并设置元素的最终尺寸 这是一个递归 ...
随机推荐
- luogu3698 [CQOI2017]小Q的棋盘
最长链是根节点到深度最深的结点的路径. 显然,要么直接走最长链,要么兜兜转转几个圈圈再走最长链,而最长链以外的结点因为要"兜圈",所以要经过两次. #include <ios ...
- FFT-hdu题目练习
网上FFT的讲解和板子有很多,所以直接放题目 hdu1402 http://acm.hdu.edu.cn/showproblem.php?pid=1402 /* problem:大整数乘法 solut ...
- pat 1029 1029. 旧键盘(20)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在2行中分别给出应该输入的文字.以及实际 ...
- hdu2022
#include <stdio.h> #include <math.h> #define here puts("go,go,go!\n") int main ...
- 【JavaScript 3—基础知识点】:运算符
导读:其实看到这个运算符的学习,很有一种熟悉感,因为在总体看来,和之前的C++有很多类似的地方,但当时觉得简单,没有总结.所以,这次一定得总结了.其实,知识的罗列,基础的积累,在学习中也很重要. 一. ...
- 洛谷 [P4151] 最大异或和路径
线性基 首先我们发现,对于一条路径走过去再走回来是没有意义的, 所以我们可以没有任何其他影响的取得一个环的异或和 所以我们预处理出来所有环的异或和,求出他们的线性基,然后任找一条 \(1 \sim n ...
- ZOJ - 4020 Traffic Light (BFS)
[传送门]http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4020 [题目大意]从起点(sx, sy)出发,要到达(ex , ...
- 实验十二 swing图形界面设计
1.源程序 package information;import java.awt.Container;import java.awt.FlowLayout;import java.awt.event ...
- Spring中使用byName实现Beans自动装配
以下内容引用自http://wiki.jikexueyuan.com/project/spring/beans-auto-wiring/spring-autowiring-byname.html: 此 ...
- java zip 工具类
原文:http://www.open-open.com/code/view/1430906539866 package com.topsoft.websites.utils; import java. ...