没事儿找事儿————gtk学习(用盒状容器排列控件)
来源:互联网 发布:linux中断机制 编辑:程序博客网 时间:2024/05/21 17:52
盒状容器只能容纳一行或者一列控件,可以向盒状容器中再添加盒状容器。还可以用格状容器控件(GtkTable)。格状容器是一种能容纳多行多列且简单易用的容器,它提供了坐标方式表示控件所要摆放的空间的方式。
#include<gtk/gtk.h>int main(int argc,char**argv){GtkWidget* window;GtkWidget* table;GtkWidget* button;GtkWidget* frame;gtk_init(&argc,&argv);window = gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_title(GTK_WINDOW(window),"格状容器");gtk_window_set_default_size(GTK_WINDOW(window),400,300);g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit),NULL);gtk_container_set_border_width(GTK_CONTAINER(window),40);frame = gtk_frame_new("格状容器排列控件");gtk_container_add(GTK_CONTAINER(window),frame);table = gtk_table_new(4,4,FALSE);gtk_container_set_border_width(GTK_CONTAINER(table),10);gtk_table_set_row_spacings(GTK_TABLE(table),5);gtk_table_set_col_spacings(GTK_TABLE(table),5);gtk_container_add(GTK_CONTAINER(frame),table);button = gtk_button_new_with_label("1");gtk_table_attach(GTK_TABLE(table),button,0,1,0,1,GTK_FILL,GTK_FILL,0,0);button = gtk_button_new_with_label("2");gtk_table_attach(GTK_TABLE(table),button,1,3,1,3,GTK_FILL,GTK_FILL,0,0);button = gtk_button_new_with_label("3");gtk_table_attach_defaults(GTK_TABLE(table),button,0,1,1,3);button = gtk_button_new_with_label("4");gtk_table_attach_defaults(GTK_TABLE(table),button,1,3,0,1);button = gtk_button_new_with_label("5");gtk_table_attach_defaults(GTK_TABLE(table),button,0,4,3,4);button = gtk_button_new_with_label("6");gtk_table_attach_defaults(GTK_TABLE(table),button,3,4,0,3);gtk_widget_show_all(window);gtk_main();return 0;}
框架控件(Gtk_Frame)和窗口一样是一种只能容纳一个控件的对象,但它不能像窗口那样直接显示出来,必须把它放到窗口中才能显示出来。
table = gtk_table_new(4,4,FALSE);创建格状容器,为4行4列,不容许均匀摆放子控件。
在格状容器中排列控件使用gtk_table_attach和gtk_table_attach_defaults,它们的功能是向格状容器的指定区域中添加控件。
函数gtk_table_attach有10个参数,前两个参数分别是格状容器和要放入到格状容器中的控件指针;接下来的4个参数是控件在格状容器中的位置坐标;最后4个参数是排放控件的属性和间隔距离。其中第7个参数和第8个参数类型为GtkAttachOptions,有3中分别是GTK_EXPAND(可扩展的);GTK_SHRINK(可缩小的);GTK_FILL(可添充的)
函数gtk_table_set_row_spacings和gtk_table_set_col_spacings来设定格状容器中子控件的行间隔和列间隔。
0 0
- 没事儿找事儿————gtk学习(用盒状容器排列控件)
- 没事儿找事儿————gtk学习(盒状容器)
- 没事儿找事儿————gtk学习(gtk安装)
- 没事儿找事儿————gtk学习(Hello World)
- 没事儿找事儿————gtk学习(完善窗口的功能)
- 没事儿找事儿————gtk学习(给窗体添加按钮)
- 【GTk】GTK+图形化应用程序开发学习笔记(四)—容器、构件
- 【GTK】GTK+图形化应用程序开发学习笔记(五)—组装盒、组合表、固定容器构件
- GTK+图形化应用程序开发学习笔记(四)—容器.构件(1)
- GTK+图形化应用程序开发学习笔记(四)—容器.构件(2)
- GTK+图形化应用程序开发学习笔记(四)—容器、构件
- GTK+图形化应用程序开发学习笔记(四)—容器、构件
- GTK+图形化应用程序开发学习笔记(四)—容器、构件
- Clutter学习(三):在GTK容器中加入Clutter容器——Stage Widget小例子
- 没事儿千万别点——链接有毒
- GTK+图形化应用程序开发学习笔记(五)—组装盒、组合表、固定容器构件(1)
- GTK+图形化应用程序开发学习笔记(五)—组装盒、组合表、固定容器构件(2)
- GTK+图形化应用程序开发学习笔记(五)—组装盒、组合表、固定容器构件
- HTML5自学手册--HTML5 服务器发送事件(14)
- 电源管理
- 名牌老校广州传智最牛的.Net培训课程
- cocos2d-x之区域裁剪
- svn 服务器迁移
- 没事儿找事儿————gtk学习(用盒状容器排列控件)
- 黑马程序员_this关键字
- cocos2d-x备忘录
- Android控件之ZoomControls缩放控件
- (standard c libraries translation )bcmp家族
- linux获取当前绝对路径
- Starling之动态纹理
- spring和mybatis自动判断dao操作类型分库查询
- 数据库_jdbc_dbutils的使用+存储复杂对象