我如何在GTK 3中对齐小部件

时间:2014-03-08 17:14:35

标签: c gtk

box1=gtk_box_new(GTK_ORIENTATION_HORIZONTAL,3);
align=gtk_alignment_new(1,0,0,0);
my=gtk_button_new_with_label("HELLO");
gtk_container_add(GTK_CONTAINER(frame),my);
gtk_container_add(GTK_CONTAINER(box1),frame);
gtk_container_add(GTK_CONTAINER(window),box1);

我必须编写所有这些代码来对齐窗口左上角的按钮,或者是一种更简单的方法。如果有人能给我更多关于GTK容器的信息,因为我很难理解参考。

在使用Glade之前,我想看看事情是如何运作的。抱歉我的英文。

2 个答案:

答案 0 :(得分:9)

作为Gtk3中GtkAlignment笔记的文档,通常无需使用它,因为通过设置halignmarginhexpand可以实现相同的效果您想要对齐的小部件的属性。

要将按钮放在左上角,您可以将halignvalign设置为GTK_ALIGN_START

答案 1 :(得分:4)

更新:正如jku所述,我们已弃用GtkHBoxGtkVBoxGtkTable,而应使用GtkGrid。 {@ 1}}也已弃用,应改为使用answer by Phillip Wood中提供的属性。


我认为你的意思是gtk_alignment_new(0,0,0,0)与左边对齐。但是在不了解窗口内的其他小部件的情况下,这看起来对我很好。这就是你如何对齐。

GTK中的基本布局容器是:

  • GtkFixed允许小部件绝对定位。

    GtkAlignment
  • GtkHBox允许小部件水平放置:

    +----------------------------+
    |                   Widget 3 |
    | Widget 2                   |
    |              Widget 1      |
    |                            |
    +----------------------------+
    
  • GtkVBox允许小部件垂直放置:

    +--------+-----+
    | Widget | ... |
    +--------+-----+
    
  • GtkTable允许网格或表格布局。

    +--------+
    | Widget |
    +--------+
    |  ...   |
    +--------+
    

除了这些容器之外,还有GtkAlignment,它允许您控制窗口小部件在其分配的空间内的对齐。

GTK+ layout management是一个不错的教程,提供了不同布局容器的工作示例。