您的位置:首页 > 编程语言 > Go语言

GTK Gossip: GtkLabel

2010-12-10 14:27 204 查看
到目前為止一直在用的GtkLabel,其實可以設定更多的樣式,例如簡單的標記(markup)、換行、對齊、自動換行等。

要設定標記可以使用gtk_label_set_markup()函式,要設定換行,可以使用'/n'來斷行,或是使用
gtk_label_set_line_wrap()設定依容器寬度自動換行,要設定對齊可以使用gtk_label_set_justify(),預設
是置中對齊,可以設定的值包括了:

GTK_JUSTIFY_CENTER:置中對齊(預設)

GTK_JUSTIFY_LEFT:靠左對齊

GTK_JUSTIFY_RIGHT:靠右對齊

GTK_JUSTIFY_FILL:左右對齊

以下使用一個程式實例,來看看設定過程與執行後的效果:

gtk_label_demo.c

#include <gtk/gtk.h>

int main(int   argc, char *argv[]) {

GtkWidget *window;

GtkWidget *vbox;

GtkWidget *frame;

GtkWidget *label;

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_window_set_title(GTK_WINDOW(window), "GtkLabel");

gtk_window_set_default_size(GTK_WINDOW(window), 400, 400);

vbox = gtk_vbox_new(FALSE, 5);

frame = gtk_frame_new("簡單標記");

label = gtk_label_new(NULL);

gtk_label_set_markup(GTK_LABEL(label),

"<span foreground='blue' size='x-large'>良葛格學習筆記</span>");

gtk_container_add(GTK_CONTAINER(frame), label);

gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0);

frame = gtk_frame_new("多行");

label = gtk_label_new("良葛格學習筆記/ncaterpillar.onlyfun.net/n" /

"Gossip@caterpillar");

gtk_container_add(GTK_CONTAINER(frame), label);

gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0);

frame = gtk_frame_new("自動換行");

label = gtk_label_new("You might think you know but actually you don't. " /

"You might think you know but actually you don't. " /

"You might think you know but actually you don't. " /

"You might think you know but actually you don't.");

gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);

gtk_container_add(GTK_CONTAINER(frame), label);

gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0);

frame = gtk_frame_new("靠右對齊");

label = gtk_label_new("良葛格學習筆記/ncaterpillar.onlyfun.net/n" /

"Gossip@caterpillar");

gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);

gtk_container_add(GTK_CONTAINER(frame), label);

gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0);

frame = gtk_frame_new("自動換行、左右對齊");

label = gtk_label_new("You might think you know but actually you don't. " /

"You might think you know but actually you don't. " /

"You might think you know but actually you don't. " /

"You might think you know but actually you don't.");

gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);

gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_FILL);

gtk_container_add(GTK_CONTAINER(frame), label);

gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0);

gtk_container_add(GTK_CONTAINER(window), vbox);

g_signal_connect(GTK_OBJECT(window), "destroy",

G_CALLBACK(gtk_main_quit), NULL);

gtk_widget_show_all(window);

gtk_main();

return 0;

}


執行結果如下所示:



BloggerAds 廣告

ASUS U系列

移動輕哲學
極薄1.9cm羽量 1.66kg,任Intel Core i5智慧處理器飆行。10hr超強電池續航力,讓你在城市從容遊走。
更多訊息..
Skype在手 人 脈、商機一機搞定
立即免費下載iOS、Android、Symbian專用Skype,人脈、商機一手搞定。
更多訊息..




Impr

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: