将GtkLabel相对于GtkDrawingArea对齐

时间:2010-08-18 20:30:04

标签: c++ c gtk gtk2

我在VBox中有一个GtkLabel和一个GtkDrawingArea,我想将标签相对于GtkDrawingArea的X坐标(它位于VBox中的标签下方)居中,我怎么能告诉GTK将该标签居中相对于那个“锚点”?这一点应该是标签的中心。

2 个答案:

答案 0 :(得分:2)

由于您的GtkLabel和GtlDrawingArea位于GtkVBox内,因此它们的位置相互相对。以下内容应设置标签与中心的对齐方式:

gtk_misc_set_alignment(GTK_MISC(label), 0.5F /*X*/, 0.5F /*Y*/);

如果您不想使GtkLabel的文本居中,那么您可以使用GtkAlignment小部件:

GtkWidget* helper;

helper = gtk_alignment_new(0.5F /*X*/, 0.5F /*Y*/, 0.0F, 0.0F);
gtk_container_add(GTK_CONTAINER(helper), label);

gtk_box_pack_start_defaults(GTK_BOX(vbox), helper);

您可以通过调用gtk_alignment_set函数重新对齐它。

答案 1 :(得分:0)

我通过使用gtk_alignment_new来创建居中对齐来解决我的问题然后我使用gtk_alignment_set_padding来填充右边的填充,其中填充量需要与任意x轴值对齐。谢谢你的答案!