Gtk 的布局 Layout 一 垂直 水平布局

2021-05-06 16:20:33 字數 1201 閱讀 7832

垂直布局(vlayout),gtk+的垂直布局一般採用gtkvbox,一種垂直盒裝容器,可以在容器中安放各種其他的子構件(如:gtkbutton,gtklabel,gtkframe,gtkentry,gtkcombox等),可以通過下列方式建立乙個垂直盒裝容器:

gtkwidget* gtk_vbox_new(gboolean homogeneous,gint spacing);其中引數homogeneous為布林型別值(true or false),當值為true時表示在容器中的子構件的是平均分配空間,引數spacing是各個子構件之間的間隔。

example:gtkwidget *vbox = gtk_vbox_new(true,5);

水平布局(hlayout),gtk+的水平布局一般採用gtkhbox,一種水平盒裝容器,安放子構件同上,通過下列方式建立乙個水平盒裝容器:

gtkwidget* gtk_hbox_new(gboolean homogeneous,gint spacing);引數含義同上,這裡就不贅述了。

使用以上的兩種容器時,都要搭配使用以下的函式,向容器中新增子構件,函式如下:

void gtk_box_pack_start(gtkbox *box,gtkwidget *child,gboolean expand,gboolean fill,guint padding);

void gtk_box_pack_end(gtkbox *box,gtkwidget *child,gboolean expand,gboolean fill,guint padding);

void gtk_box_pack_start_defaults(gtkbox *box,gtkwidget *child);

void gtk_box_pack_end_defaults(gtkbox *box,gtkwidget *child);

box引數指代盒裝容器構件,child引數指代子構件,expand引數是否可擴充套件,fill引數是否填充區域,padding引數每個子構件之間間隔

gtk_box_pack_start函式意為從容器的前到後(或從上到下)布局子構件,gtk_box_pack_end函式意為從容器的後到前(或從下到上)布局子構件,gtk_box_pack_start_defaults和gtk_box_pack_end_defaults中expand和fill預設為true,padding預設為0。

這裡簡單介紹了一下gtk+布局中的垂直布局和水平布局,後面會把例項**提交。

QT中layout的布局

開發乙個圖形介面應用程式,介面的布局影響到介面的美觀。在設計乙個介面之前,應該考慮到開發的介面可能給不用的使用者使用,而使用者的螢幕大小 縱橫比例 解析度可能不同,介面還可能是可縮放的,程式應該可以適應這些變化。前面的程式中都是使用setgeometry 方法定位控制項的位置,這個方法比較笨拙。試想...

Android幾種layout 布局 的區別

1.framelayout children按照從左上開始的順序排列,主要用於tabed view或者切換功能 最簡單的布局模型,在這種布局下每個新增的子控制項都被放在布局的左上角,並覆蓋在前一子控制項的上層。2.線性布局 linearlayout children排列成一行多列或者一列多行的形式,...

css經典布局系列一 垂直居中布局

parent child child 複製 parent child 複製 parent child 複製 parent child 複製 transfrom translate3d 50 50 width 100px height 100px 複製 複製 父元素設定 display flex ju...