2010-08-18 51 views
0

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

回答

0

我解决了我的问题,使用gtk_alignment_new为了创建一个居中对齐,然后我用gtk_alignment_set_padding来填充正确的填充所需的填充量,以便与任意x轴值对齐。感谢您的答案!

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函数重新调整它。

+0

看到我说“我要将标签相对于GtkDrawingArea的X坐标居中”的部分,我不希望标签以GtkDrawingArea为中心,并且是以任意x轴点为中心的GtkDrawingArea。 – Tarantula 2010-08-19 12:07:01

+0

@Tarantula:我编辑了我的答案,现在可能是答案,否则这是我的错,我无法理解你的意思。 – 2010-08-19 12:48:05

+0

感谢您回答PC2st,我使用gtk_alignment_set_padding解决了它,查找答案。 – Tarantula 2010-08-19 14:13:10