前面我们学习的水平、垂直和表格布局容器,控件会跟着容器大小的变化进行自己主动适应。而固定布局容器里的控件则不会跟着变化( 则固定不变 )。

固定布局的创建:

GtkWidget *gtk_fixed_new(void);

返回值:固定布局容器指针





固定布局容器加入控件:

void gtk_fixed_put(

GtkFixed *fixed,

GtkWidget *widget,

gint x,

gint y );

fixed:容纳控件的容器

widget:要加入的控件

x, y:控件摆放位置的起点坐标。例如以下图:

设置控件的大小( 宽和高 ):

void gtk_widget_set_size_request(

GtkWidget *widget,

gint width,

gint height );

widget:须要设置的控件

width:宽度

height:高度





移动固定布局里控件的位置:

void gtk_fixed_move(

GtkFixed *fixed,

GtkWidget *widget,

gint x,

gint y);

fixed:固定布局容器

widget:须要移动的控件

x, y: 移动的位置

完整代码例如以下:

#include <gtk/gtk.h>

int main(int argc,char *argv[])
{
//1.gtk环境初始化
gtk_init(&argc, &argv); //2.创建一个窗体
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //3.创建一个固定布局容器fixed
GtkWidget *fixed = gtk_fixed_new();
//将fixed加入到window中
gtk_container_add(GTK_CONTAINER(window), fixed); //4.创建一个button按钮
GtkWidget *button1 = gtk_button_new_with_label("button1");
//将button1加入到固定容器fixed中
gtk_fixed_put(GTK_FIXED(fixed), button1, 0,0); GtkWidget *button2 = gtk_button_new_with_label("button2");
//将button1加入到固定容器fixed中
gtk_fixed_put(GTK_FIXED(fixed), button2, 0, 0); //5.移动button2到(150,150)的位置
gtk_fixed_move(GTK_FIXED(fixed), button2, 150, 150); //6.设置button2的大小
gtk_widget_set_size_request(button2,100, 50); //7.显示全部窗体
gtk_widget_show_all(window); //8.主事件循环
gtk_main(); return 0;
}

执行结果:

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

转自:

GTK入门学习:布局容器之固定布局的更多相关文章

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

    假设我们希望窗体里多放加入几个控件,直接加入是不成功的.由于窗体仅仅能容纳一个控件的容器. 这时候.我们须要借助布局容器,我们先把布局容器加入到窗体里.然后再把所须要加入的控件放在布局容器里. 布局容 ...

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

    接下来,我们做一个布局练习.例如以下图: 我们用表格布局实现,表格布局參考坐标例如以下: 这里我们用到行编辑控件( GtkEntry ). 行编辑的创建: GtkWidget * gtk_entry_ ...

  3. Html5 学习笔记 【PC固定布局】 实战7 风景欣赏 联系我们

    风景欣赏最终效果: 关于公司最终效果: 风景欣赏Html代码: <!DOCTYPE html> <html lang="zh-cn"> <head&g ...

  4. Html5 学习笔记 【PC固定布局】 实战7 机票预订页面

    最终实际效果: HTML代码: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta char ...

  5. Html5 学习笔记 【PC固定布局】 实战6 咨询页面

    最终效果: Html页面代码: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta char ...

  6. Html5 学习笔记 【PC固定布局】 实战5 咨询页面 侧栏

    最终效果图: 提出公共页脚和导航部分: 新建infomatino.html (旅游咨询)页面 <!DOCTYPE html> <html lang="zh-cn" ...

  7. Html5 学习笔记 【PC固定布局】 实战4 footer 区域

    最终效果图: Html代码: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta chars ...

  8. Html5 学习笔记 【PC固定布局】 实战3 热门旅游展示区

    最终效果图: html 代码: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta char ...

  9. Html5 学习笔记 【PC固定布局】 实战2 导航栏搜索区域

    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8& ...

随机推荐

  1. hdu 4825(Trie)

    Xor Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others)Total S ...

  2. [TCO2013]DirectionBoard

    题意:给一个网格,每个格子有一个方向表示在这个格子上要往哪个方向走,你可以改变某些格子的方向,问最少多少次操作使得从任意格子出发都能回到这个格子 woc这都不会我还是回家种田去吧... 题目的要求是改 ...

  3. php的json_encode()之后float类型丢失精度

    在后台php中,金额保留两位小数.但是前端显示精度丢失,出现了14位小数的奇怪现象.本来以为是前端js解析之后出现的问题.检查之后发现json_encode()之后就出现了. 原始的值: array( ...

  4. es进行聚合操作时提示Fielddata is disabled on text fields by default

    在进行派粗前,先执行以下操作 { "properties": { "updatedate": { "type": "text&qu ...

  5. Java 8:不要再用循环了 Stream替代for循环

    原文:http://www.importnew.com/14841.html 在这篇文章里,我们将会去了解传统循环的一些替代方案.在Java 8的新功能特性中,最棒的特性就是允许我们去表达我们想要完成 ...

  6. JAVA常见算法题(三十)

    package com.forezp.util; import java.io.BufferedReader; import java.io.FileReader; import java.io.In ...

  7. 关于如何避免Android中Bitmap引起的OutOfMemoryError

    在Android中处理大图片不是一件很随意的事情,因为通常我们使用的是内置的BitmapFactory解码图片的,而BitmapFactory往往会因为图片过大而遇到OutOfMemoryError的 ...

  8. MLP 之手写数字识别

    0. 前言 前面我们利用 LR 模型实现了手写数字识别,但是效果并不好(不到 93% 的正确率). LR 模型从本质上来说还只是一个线性的分类器,只不过在线性变化之后加入了非线性单调递增 sigmoi ...

  9. JAVA应用获取本机IP

    在应用开发的时候如何获取本机的IP呢? 本人在开发一个线上系统的时候有这样的需求,办法很简单啊,google一下,于是乎有了下面的代码: 方案一: Enumeration<NetworkInte ...

  10. 流畅的python第七章函数装饰器和闭包学习记录

    本章讨论的话题 python如何计算装饰器句法 python如何判断变量是不是局部的(通过函数内部是否给变量赋值过来判断是否是局部变量) 闭包存在的原因和工作原理(闭包是一种函数,它会保留定义函数时存 ...