Выровнять GtkLabel относительно GtkDrawingArea - PullRequest
0 голосов
/ 19 августа 2010

У меня есть GtkLabel и GtkDrawingArea в VBox, я хочу центрировать метку относительно X-координаты GtkDrawingArea (которая находится ниже метки в VBox), как я могу сказать GTK центрировать эту меткуотносительно этой "якорной" точки?Эта точка должна быть в центре этикетки.

Ответы [ 2 ]

2 голосов
/ 19 августа 2010

Поскольку ваши 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 голосов
/ 19 августа 2010

Я решил свою проблему с помощью gtk_alignment_new, чтобы создать центрированное выравнивание, а затем я использовал gtk_alignment_set_padding, чтобы заполнить правый отступ количеством отступов, необходимым для выравнивания с произвольным значением оси x. Спасибо за ответы!

...