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

固定布局的创建:

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. [Arc080F]Prime Flip

    [Arc080F]Prime Flip Description 你有无限多的"给给全",编号为1,2,3,....开始时,第x1,x2,...,xN个"给给全" ...

  2. (Mark)JS中关于闭包

    闭包(Closures) 在ECMAScript中,函数是“第一类”对象.这个名词意味着函数可以作为参数被传递给其他函数使用 (在这种情况下,函数被称为“funargs”——“functional a ...

  3. python使用sqlite示例

    SQLite是一种嵌入式数据库,它的数据库就是一个文件.Python就内置了SQLite3,所以,在Python中使用SQLite,不需要安装任何东西,直接使用. 操作关系数据库,首先需要连接到数据库 ...

  4. shell-网上lnmp一键安装讲解

    shell-网上lnmp一键安装讲解 #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/b ...

  5. Notepad++ v5.5以上 惯用法教程

    注:本文中为注明为自定义快捷键的,均为notepad++的默认快捷键. 0.  关闭标签页 UltraEdit是双击窗口就可以关闭,Notepad++双击不能关闭,右键只能关闭非当前标签页,那怎么办呢 ...

  6. 论MORMOT序列的JSON格式

    论MORMOT序列的JSON格式 JSON 数据使用 UTF-8 编码 BLOB 字段值会用 Base64编码 JSON数据是一个对象数组: [ {"col1":val11,&qu ...

  7. iOS中 xib自定义View在storyboard中的使用

    1,创建UIView 的SubClass 命名为MyView 2, new一个名为MyView的xib p1 3,配置xib的属性 p2 4,为View 添加背景色,添加一个按钮并定制按钮约束,这里我 ...

  8. OSC的原理

    OSC是Online Schema Change简写,即在线架构改变.其实现步骤: 1. init,即初始化阶段,会对创建的表做一些验证工作,如检查表是否有主键,是否存在触发器或者外键等.2. cre ...

  9. iOS:关于UIView切角的两种实现方式

    转载自:http://www.jianshu.com/p/451b7fa94e2a 第一种: 我想你一见到代码,就瞬间有吐的冲动,最常用的一种方式... UIButton *button = [[UI ...

  10. 二、ELKStack集群架构设计

    一.ELKStack介绍与入门实践 二.Elasticsearch 集群架构图 服务器配置:Centos6.6 x86_64 CPU:1核心 MEM:2G (做实验,配置比较低一些) 注:这里配置el ...