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之前,我想看看事情是如何运作的。抱歉我的英文。
答案 0 :(得分:9)
作为Gtk3中GtkAlignment笔记的文档,通常无需使用它,因为通过设置halign和margin,hexpand可以实现相同的效果您想要对齐的小部件的属性。
要将按钮放在左上角,您可以将halign
和valign
设置为GTK_ALIGN_START
。
答案 1 :(得分:4)
更新:正如jku所述,我们已弃用GtkHBox
,GtkVBox
和GtkTable
,而应使用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是一个不错的教程,提供了不同布局容器的工作示例。