C 如何使用Pango属性设置标签的大小?

C 如何使用Pango属性设置标签的大小?,c,gtk3,pango,C,Gtk3,Pango,我正在尝试将标签添加到GTK3窗口,然后设置标签的字体大小。以下是我的尝试: #include <gtk/gtk.h> static void add_label (GtkWidget* window, gchar *text) { GtkWidget *label = gtk_label_new(text); PangoAttrList *attrlist = pango_attr_list_new(); PangoAttribute *attr = p

我正在尝试将标签添加到GTK3窗口,然后设置标签的字体大小。以下是我的尝试:

#include <gtk/gtk.h>

static void
add_label (GtkWidget* window, gchar *text)
{

    GtkWidget *label = gtk_label_new(text);
    PangoAttrList *attrlist = pango_attr_list_new();
    PangoAttribute *attr = pango_attr_size_new_absolute(20);
    pango_attr_list_insert(attrlist, attr);
    gtk_label_set_attributes(GTK_LABEL(label), attrlist);
    pango_attr_list_unref(attrlist);
    gtk_container_add (GTK_CONTAINER (window), label);
}

static void
activate (GtkApplication* app,
          gpointer        user_data)
{
    GtkWidget *window;

    window = gtk_application_window_new (app);
    gtk_window_set_title (GTK_WINDOW (window), "Window1");
    gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
    add_label( window, "Hello world" );
    gtk_widget_show_all (window);
}

int
main (int argc, char **argv) 
{
    GtkApplication *app;
    int status;

    app = gtk_application_new ( "org.gtk.example", G_APPLICATION_FLAGS_NONE );
    g_signal_connect( app, "activate", G_CALLBACK(activate), NULL);
    status = g_application_run(G_APPLICATION(app), argc, argv);
    g_object_unref (app);

    return status;
}

标签显示出来了,但字体大小没有设置。

我认为
PANGO_SCALE
在这里缺失

PangoAttribute *attr = pango_attr_size_new_absolute(20 * PANGO_SCALE);
这将为您提供所需的结果:


太好了,这很有效!我不知道盘古的规模。确实是说
大小:设备单元的字体大小,以PANGO_scaleth表示。
,这就是为什么需要乘法的原因。这也是为什么只使用CSS的另一个原因。:)
PangoAttribute *attr = pango_attr_size_new_absolute(20 * PANGO_SCALE);