记录GtkLabel相关函数的使用

#include <gtk/gtk.h>

static void load_css (void)
{


    GtkCssProvider *provider;
    GdkDisplay *display;
    GdkScreen *screen;

    const gchar *css_style_file = "style.css";
    GFile *css_fp = g_file_new_for_path(css_style_file);
    GError *error = 0;

    provider = gtk_css_provider_new();
    display = gdk_display_get_default();
    screen = gdk_display_get_default_screen(display);

    gtk_style_context_add_provider_for_screen(screen, GTK_STYLE_PROVIDER(provider),
                                              GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
    gtk_css_provider_load_from_file(provider, css_fp, &error);

    g_object_unref(provider);
}
gboolean user_function (GtkWidget *widget, GdkEvent *event,gpointer user_data);

static GtkWidget *createWindow(void)
{
    GtkWidget *window;
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    //gtk_window_set_default_size(GTK_WINDOW(window), 400, 400);
    gtk_widget_set_size_request(window, 400, 400);
    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
    gtk_window_set_title(GTK_WINDOW(window), "GTK");
    gtk_container_set_border_width(GTK_CONTAINER(window), 50);
    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
    return window;
}


int main(void)
{
    GtkWidget *window;
    GtkWidget *label;

    gtk_init(NULL, NULL);

    load_css();

    window = createWindow();

    label = gtk_label_new(NULL);
    //gtk_label_set_label(GTK_LABEL(label),"Hello Label");
    gtk_label_set_text(GTK_LABEL(label), "HarmonyOS system \nwill become the most \npopular operating system");
    //const gchar *ptr = gtk_label_get_label(GTK_LABEL(label));
    //const gchar *ptr = gtk_label_get_text(GTK_LABEL(label));
    //g_print("label text: %s\n", ptr);
    // 设置文本位置
    //gtk_label_set_xalign(GTK_LABEL(label), 0.10f);
    //gtk_label_set_yalign(GTK_LABEL(label), 0.20f);
    //const gfloat x = gtk_label_get_xalign(GTK_LABEL(label));
    //const gfloat y = gtk_label_get_yalign(GTK_LABEL(label));
    //g_print("label text pos: x = %f, y = %f\n", x, y);
    // 设置文本方向
    //gtk_label_set_angle(GTK_LABEL(label), 0);
    //const gdouble angle = gtk_label_get_angle(GTK_LABEL(label));
    //g_print("label text angle: %f\n", angle);
    // 设置当文本过长的时候,我们调整窗口大小时,文本可以换行展示,默认模式是PANGO_WRAP_WORD
    //gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
    // 设置换行的模式,word or char
    //gtk_label_set_line_wrap_mode(GTK_LABEL(label), PANGO_WRAP_CHAR);
    // 设置文本的对齐方式
    //gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
    //gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER);
    //gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
    //gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_FILL);
    // 设置文本可以选中复制
    //gtk_label_set_selectable(GTK_LABEL(label), TRUE);
    // 设置对应文本的下划线
    //gtk_label_set_pattern(GTK_LABEL(label), "___ __");

    /*
    const char *str = "I am kato";
    const char *format = "<span style=\"italic\">\%s</span>";
    char *markup = g_markup_printf_escaped (format, str);
    gtk_label_set_markup (GTK_LABEL (label), markup);
    g_free (markup);
    */

    gtk_container_add(GTK_CONTAINER(window), label);

    gtk_widget_show_all(window);
    gtk_main();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值