鱼C论坛

 找回密码
 立即注册
查看: 2274|回复: 1

[技术交流] C语言GUI程序设计-GTK图文系列-GtkWidget之容器(三)

[复制链接]
发表于 2014-10-27 20:17:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这一讲讲解GtkFixed和GtkPaned,这两个部件都比较简单

GtkFixed

GtkFixed提供绝对定位布局,可以通过设置坐标来精确摆放子部件的位置,在窗口布局固定的情况下使用。

gtk_fixed.png


例程:
  1. #include <gtk/gtk.h>

  2. int main(int argc,char *argv[])
  3. {
  4.     GtkWidget *window,*fixed,*label,*button;
  5.     gtk_init (&argc, &argv);

  6.     window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  7.     gtk_window_set_title(GTK_WINDOW(window),"hello fishc - GtkFixed");
  8.     gtk_widget_set_size_request(window,300,200);

  9.     fixed = gtk_fixed_new();
  10.     gtk_container_add(GTK_CONTAINER(window), fixed);

  11.     label = gtk_label_new("label1");
  12.     button = gtk_button_new_with_label("button");

  13.     gtk_fixed_put(GTK_FIXED(fixed), label, 20,20);
  14.     gtk_fixed_put(GTK_FIXED(fixed), button, 60,60);

  15.     gtk_widget_show_all(window);
  16.     gtk_main ();

  17.     return 0;
  18. }
复制代码

gtk_fixed_put函数用来为GtkFixed部件添加子部件,并设置其位置坐标,最后来个参数用来设置子部件在父容器中的位置。

GtkPaned

GtkPaned提供一个可以调节的分割条,把窗口分隔成两个面板。GtkHPaned和GtkVPaned“继承”于GtkPaned,并且在创建GtkPaned时可以设置参数,使其成为GtkHPaned或GtkVPaned,所以这里只讲GtkPaned。

gtk_paned_1.png gtk_paned_2.png


在label1和button直接有个分割条,可以用来调整两侧面板的宽度。
例程:

  1. #include <gtk/gtk.h>

  2. int main(int argc,char *argv[])
  3. {
  4.     GtkWidget *window,*paned,*label,*button;
  5.     gtk_init (&argc, &argv);

  6.     window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  7.     gtk_window_set_title(GTK_WINDOW(window),"hello fishc - GtkPaned");
  8.     gtk_widget_set_size_request(window,300,200);

  9.     paned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL);
  10.     gtk_container_add(GTK_CONTAINER(window), paned);

  11.     label = gtk_label_new("label1");
  12.     button = gtk_button_new_with_label("button");

  13.     gtk_paned_add1(GTK_PANED(paned), label);
  14.     gtk_paned_add2(GTK_PANED(paned), button);

  15.     //gtk_paned_set_position(GTK_PANED(paned),150);

  16.     gtk_widget_show_all(window);
  17.     gtk_main ();

  18.     return 0;
  19. }
复制代码

另外也可以通过代码设置分割条的位置:
  1. gtk_paned_set_position(GTK_PANED(paned),150);
复制代码





小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2014-10-30 14:44:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-15 23:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表