У меня есть следующий код, и я изо всех сил пытаюсь выровнять метку по центру его родителя (макет), но у меня ничего не получилось:
int main(int argc, char ** argv){
GtkWidget *window;
GtkWidget *layout;
GtkWidget *label;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(window), 1024, 600);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
layout = gtk_layout_new(NULL, NULL);
gtk_container_add(GTK_CONTAINER (window), layout);
label = gtk_label_new(NULL);
gtk_label_set_text(GTK_LABEL(label), "SOME TEXT");
gtk_layout_put(GTK_LAYOUT(layout), label, 0, 0);
// Here I'm trying to align my label to the center,
// but it doesn't work with any of the three functions
gtk_widget_set_halign(label, GTK_ALIGN_CENTER);
//gtk_label_set_xalign(GTK_LABEL(label), GTK_ALIGN_CENTER);
//gtk_misc_set_alignment(GTK_MISC(label), 0.5f, 0.5f);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
Я также попробовал некоторые другиефункции, которые я мог бы найти в документации GENOME и другие вопросы SO, но они в основном устарели или тоже не работают.На данный момент, когда я работаю с GTK3, рекомендуемый способ выглядит следующим образом:
gtk_widget_set_halign (label, GTK_ALIGN_CENTER);
Но это не работает,Метка все еще находится в той позиции, с которой я ее поставил:
gtk_layout_put (GTK_LAYOUT (layout), label, 512, 300);
Код компилируется без ошибокили предупреждения.