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

固定布局的创建:

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: 移动的位置

完整代码例如以下:

  1. #include <gtk/gtk.h>
  2.  
  3. int main(int argc,char *argv[])
  4. {
  5. //1.gtk环境初始化
  6. gtk_init(&argc, &argv);
  7.  
  8. //2.创建一个窗体
  9. GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  10.  
  11. //3.创建一个固定布局容器fixed
  12. GtkWidget *fixed = gtk_fixed_new();
  13. //将fixed加入到window中
  14. gtk_container_add(GTK_CONTAINER(window), fixed);
  15.  
  16. //4.创建一个button按钮
  17. GtkWidget *button1 = gtk_button_new_with_label("button1");
  18. //将button1加入到固定容器fixed中
  19. gtk_fixed_put(GTK_FIXED(fixed), button1, 0,0);
  20.  
  21. GtkWidget *button2 = gtk_button_new_with_label("button2");
  22. //将button1加入到固定容器fixed中
  23. gtk_fixed_put(GTK_FIXED(fixed), button2, 0, 0);
  24.  
  25. //5.移动button2到(150,150)的位置
  26. gtk_fixed_move(GTK_FIXED(fixed), button2, 150, 150);
  27.  
  28. //6.设置button2的大小
  29. gtk_widget_set_size_request(button2,100, 50);
  30.  
  31. //7.显示全部窗体
  32. gtk_widget_show_all(window);
  33.  
  34. //8.主事件循环
  35. gtk_main();
  36.  
  37. return 0;
  38. }

执行结果:

源码下载: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. [BZOJ1563][NOI2009]诗人小G(决策单调性优化DP)

    模板题. 每个决策点都有一个作用区间,后来的决策点可能会比先前的优.于是对于每个决策点二分到它会比谁在什么时候更优,得到新的决策点集合与区间. #include<cstdio> #incl ...

  2. 伤逝——shoebill关于noip2017的手记

    如果我能够,我要写下我的悔恨和悲哀,为机房爆炸的dalao们,为自己. jzyz的被遗忘在实验楼里的机房依然喧闹而空虚,时光过得真快,我学oi,仗着她逃过班级的寂静,已经满一年了.事情又这么不凑巧,我 ...

  3. 【AC自动机】HDU中模板题

    [HDU2222] 最纯粹的裸题,错误点详见注释. #include<iostream> #include<cstdio> #include<cstring> #i ...

  4. springBoot单元测试-基础单元测试

    1)在pom文件中加入junit支持 <!-- spring-boot-starter-test 单元测试 --> <dependency> <groupId>or ...

  5. pca主成份分析方法

    1.应用pca的前提 应用pca的前提是,连续信号具有相关性.相关性是什么,是冗余.就是要利用pca去除冗余. 2.pca的定义 pca是一种去除随机变量间相关性的线性变换.是一种常用的多元数据分析方 ...

  6. Unity3d-Socket之龙一编年史network.dll分析(1)

    今天闲着无聊,看到群里的老大共享了反编译的工具,就下载下来玩下. 说道反编译我个人不太推崇反编译,感觉不道德,毕竟是人家的代码,但是又回想一下,我们拿代码看是抱着学习的态度又有何不可,所谓既是民族的也 ...

  7. jQuery中resetForm与clearForm的区别?

    reset是重置成最初状态,最初状态是可能有默认值的clear是清空form控件的值

  8. 利用Python编写网络爬虫下载文章

    #coding: utf-8 #title..href... str0='blabla<a title="<论电影的七个元素>——关于我对电影的一些看法以及<后会无期 ...

  9. 二十四种设计模式:单例模式(Singleton Pattern)

    单例模式(Singleton Pattern) 介绍保证一个类仅有一个实例,并提供一个访问它的全局访问点. 示例保证一个类仅有一个实例. Singleton using System; using S ...

  10. django admin后台接入tinymce并且支持图片上传

    首先:下载tinymce 地址是https://www.tinymce.com/ 点击download 下载社区版本即可 接着:把压缩包内tinymce目录内的所有文件和文件夹复制到Django项目中 ...