GTK入门学习:布局容器之表格布局
来源:互联网 发布:域名访问升级访问 编辑:程序博客网 时间:2024/04/28 04:41
学习水平和垂直布局容器后,我们几乎能布出任何风格的布局,只需要嵌套使用水平布局容器和垂直布局容器即可。假如我们要完成下图的布局,我们该怎么做呢?
1)创建一个垂直布局容器( A )
2)创建一个水平布局容器( B ),一个close按钮( C )
3)将水平布局容器和close按钮添加到垂直布局容器里( 将 B 和 C 添加到 A )
4)创建button 1按钮( D ) 和 button 2按钮( E )
5)再将button 1按钮 和 button 2按钮添加到水平布局容器里( 将 D 和 E 添加到 B )
这样是可以完成上图的布局,但是,假如布局里有有很多控件,我们只是通过水平和垂直容器嵌套布局会很麻烦,而且,控件越多,布局越麻烦。有没有更简单的方法呢?有,就是我们马上要学习的表格布局,具体的操作流程和水平垂直布局一样。
1)创建主窗口
2)创建布局容器
3)布局容器添加到窗口里
4)创建所需控件
5)控件添加到布局容器里
6)显示所有控件
表格布局容器的创建:
GtkWidget *gtk_table_new(
guint rows,
guint columns,
gboolean homogeneous );
rows: 行数
coumns: 列数
homogeneous:容器内表格的大小是否相等
返回值:表格布局容器指针
布局容器添加控件:
void gtk_table_attach_defaults(
GtkTable *table,
GtkWidget *widget,
guint left_attach,
guint right_attach,
guint top_attach,
guint bottom_attach );
table: 容纳控件的容器
widget: 要添加的控件
后四个参数为控件摆放的坐标,规则如下:
完整代码如下:
#include <gtk/gtk.h>int main(int argc, char *argv[]){ //1.gtk初始化 gtk_init(&argc, &argv); //2.创建一个window GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //3.1创建一个table,2行2列 GtkWidget *table = gtk_table_new(2,2,TRUE); //3.2将table加入到window中 gtk_container_add(GTK_CONTAINER(window), table); //4.1.1创建一个button GtkWidget *button = gtk_button_new_with_label("button1"); //4.1.2将button加入到table gtk_table_attach_defaults(GTK_TABLE(table),button, 0,1,0,1); //4.2.1创建一个button button = gtk_button_new_with_label("button2"); //4.1.2将button加入到table gtk_table_attach_defaults(GTK_TABLE(table),button, 1,2,0,1); //4.3.1创建一个button button = gtk_button_new_with_label("button3"); //4.3.2将button加入到table gtk_table_attach_defaults(GTK_TABLE(table),button, 0,2,1,2); //5.显示所有窗口 gtk_widget_show_all(window); //6.循环主事件 gtk_main(); return 0;}
运行结果:
源代码下载:http://download.csdn.net/download/lianghe_work/8934129
转自:
- GTK入门学习:布局容器之表格布局
- GTK入门学习:布局容器之表格布局
- GTK入门学习:布局容器之水平布局
- GTK入门学习:布局容器之垂直布局
- GTK入门学习:布局容器之固定布局
- GTK入门学习:布局容器之水平布局
- GTK入门学习:布局容器之垂直布局
- GTK入门学习:布局容器之固定布局
- GTK入门学习:布局练习之计算器
- GTK入门学习:布局练习之计算器
- android布局之表格布局
- Layout布局之表格布局
- HTML5学习之七div布局和表格布局
- Android学习(十五)五布局之表格布局TableLayout
- Android学习-五布局之表格布局(TableLayout)
- GTK学习(2)-布局管理
- 一步一步学GTK+之布局
- gtk布局
- ListenableFuture in Guava
- HDU 3328 Flipper 魔术纸牌
- 最小二乘回归树生成算法
- 有关c语言的++与--
- ecshop 资料整理
- GTK入门学习:布局容器之表格布局
- Android百分比布局支持库 com.android.support:percent
- QQList列表功能实现
- Fedora20上Xen的安装与部署
- 如何建设一个高性能网站
- Chrome明文存储密码
- Hidden String(模拟)
- S5PV210开发系列七_Nand驱动实现
- 头尾式动画