在GTK Box开发中packStart的目的

时间:2015-07-06 15:57:50

标签: r gtk

我试图了解packStart功能何时有用,但我不明白。它有什么作用?我试着找文件但是,我没有多少运气。

这是我正在使用的代码片段。

# add a frame for aesthetic purposes 
frame = gtkFrameNew("Specify data location...")

window$add(frame)

# create and add a new vertical container box 
vbox = gtkVBoxNew(FALSE , 8) 

vbox$setBorderWidth(24)

frame$add(vbox)

# create a horizontal container 

hbox = gtkHBoxNew(FALSE , 8)

vbox$packStart(hbox , FALSE , FALSE , 0)

label = gtkLabelNewWithMnemonic("_File name")

vbox$packStart(label , FALSE , FALSE , 0)

1 个答案:

答案 0 :(得分:3)

如果您的R绑定没有附带GTK +文档,则需要回退到regular GTK+ documentation(使用C)。

gtk_box_pack_start()是您可以将小部件添加到GtkBox的方法之一。第一个参数是要添加的小部件。

接下来的两个参数描述了当框本身增长时窗口小部件应该如何增长。它们分别称为expandfill。有关扩展和填充小部件的讨论,请参阅this

最后一个论点只是说明了这个小部件与你添加到容器中的下一个小部件之间的空间。

pack start 的含义是小部件按顺序添加,第一个小部件显示在框的顶部。例如,如果我这样做

vbox$packStart(widget1 , FALSE , FALSE , 0)
vbox$packStart(widget2 , FALSE , FALSE , 0)
vbox$packStart(widget3 , FALSE , FALSE , 0)

该框看起来像

-------
widget1
widget2
widget3



-------

还有其他方法可以向GtkBox添加控件。 pack_end()的工作方式类似于pack_start(),但控件会向后添加到框的底部。 add()gtk_container_add())的行为类似于对pack_start(widget, FALSE, FALSE, 0)的调用;我链接的第二页上描述的hexpand / vexpand / halign / valign属性可用于稍后更改参数。

祝你好运!