#

文字標籤主要的功能是用來提供說明文字或是提示用的訊息,這一章會介紹ttk文字標籤的使用方法。

18.1 建立文字標籤

要建立ttk的文字標籤是很簡單的,像下面的程式碼一樣:



請看到程式的第1行,::ttk::label命令可以用來建立文字標籤,然後-text選項可以用來指定顯示在文字標籤上的內容。它執行起來像這樣:

圖 18-1


事實上文字標籤的使用方法很簡單,也滿固定的,根據經驗上面的程式範例大概可以打死90%以上的應用。也就是說你只要學會上面的用法...好像就夠了。

18.2 文字標籤的外觀

如果你覺得預設的文字標籤太單調或不夠漂亮,然後想要加上多一點變化,ttk的label命令也有提供了一些調整外觀的選項,它們的使用方法如下:

□ 設定文字顏色

如果說你想要改變文字標籤的顏色,請這樣做:



-foreground可以用來設定文字標籤的前景顏色。對於顏色的設定方法你可直接用顏色的名稱,或是用「#」號開頭然後接上6個十六進制數值,來表示RGB三原色也就是「#RRGGBB」。這個例子我指定了red紅色,所以它執行起來像下面一樣:

圖 18-2


□ 設定邊框樣式

文字標籤也可以讓你透過-relief選項來設定邊框的樣式,它可以接受的值是flat、groove、raised、ridge、solid、sunken。如下是六種邊框的外觀:

圖 18-3


□ 設定字型

ttk裡的很多視窗元件都可以透過-font的選項來設定字型。-font選項就像之前看到的-image選項一樣,使用時必需要先經過兩個步驟:

  1. 先用font create命令建立ttk可以使用的字型。
  2. 把新建立的字型設定給視窗元件的-font選項。

請看下面的例子:



先注意程式的第1行,我們用font create命令建立一個Times的字型,大小是24點,然後第2行再把新建立的字型設定給文字標籤的-font選項。它執行的畫面如下:

圖 18-4


font create命令除了上面的-family及-size選項之外,還可以使用下面的選項來設定字型的外觀:

-weight 這個選項用來指定新建的字型是否要用粗體,如果指定為normal表示不要粗體 ,如果指定為bold表示要使用粗體。
-slant 這個選項用來指定新建的字型是否要用斜體,如果指定為roman表示不要斜體 ,如果指定為italic表示要使用斜體。
-underline 這個選項用來指定新建的字型是否加上底線,如果指定為true表示要加上底線 ,如果指定為false表示不要加上底線。
-overstrike 這個選項用來指定新建的字型是否加上刪除線,如果指定為true表示要加上刪除線 ,如果指定為false表示不要加上刪除線。

§ 關於-font選項

在ttk裡很多的視窗元件都有提供-font選項,如果以後再遇到它的話,請記得它們的用法哦!!

□ 其它常用選項

以下是其它文字標籤常用的選項,有興趣的朋友請自己試看看哦!!

-image 用來設定文字標籤上的圖示。
-compound 指定圖示及文字內容的排列方式。
-textvariable 這個選項可以指定一個變數來即時反應文字內容。
-anchor 這個選項可以設定文字內容要對齊邊框的那一個方位,可以指定的值有n、ne、e、se、s、sw、w、nw及center。
-background 這個選項可以指定文字內容的背景顏色。
-justify 如果說文字內容多於一行,這個選項可以用來設定每一行的對齊方式。它可以指定為left、center或right
-padding 這個選項可以在文字內容及邊框間加入額外的空間。

文字標籤也提供了cget及configure等標準的視窗元件命令,它們的用法請參考上一章的說明。

5 個意見

豬事大吉 | 2010年9月28日 下午1:27

label好像無法做捲軸,但是我需要顯示大量的文字結果
請問是否有解法?

sam | 2010年9月28日 下午3:54

Hi大吉:

我看了一下tk label的-Options好像沒有看到捲軸的選項,若您要顯示大量的文字結果,
可以試看看Tk的text Widget。

text .t -yscrollcommand ".scroll set" -setgrid true -width 40 -height 10 -wrap word
scrollbar .scroll -command ".t yview"
pack .scroll -side right -fill y
pack .t -expand yes -fill both

# Set up the tags
.t tag configure bold_italics -font {-family courier -size 12 -weight bold -slant italic}
.t tag configure big -font {-family helvetica -size 24 -weight bold}
.t tag configure color1 -foreground red
.t tag configure sunken -relief sunken -borderwidth 1
.t tag bind myBind <1> {.t insert end "Dai快回來吧! "}

# Now insert text that has the property of the tags
.t insert end "這是tk的text widget\n"
.t insert end "可以設定不同的字形樣式\n" bold_italics
.t insert end "還可設定不同的大小\n" big
.t insert end "顏色也可自訂\n" color1
.t insert end "不同顯示的Style\n" sunken
button .b -text "嵌入文字區的Button , 按我說在文字區插入Hello" -command {.t insert end "Hello "}
.t window create end -window .b
.t insert end "\n"
.t insert end "也有bind的功能 , 不信你點這一行文字看看" myBind
.t insert end "\n希望能解決你的問題"
.t insert end "\n"


這是網路上找到的範例程式,我想PO出處,但之前PO過連結好像整篇就消失。

匿名 | 2012年11月12日 下午3:42

您好,
請問如何在text widget中將輸入的文字內容儲存到檔案

P.T.Chen

匿名 | 2013年4月25日 下午3:43

另外請教下
因為text雖然可以顯示訊息 但是也可以手動刪除那些訊息
怎樣才能使text只能唯讀 無法刪除顯示的訊息
謝謝

dai | 2013年4月26日 中午12:43

嗯~ 試試下面的程式:

text .t
.t insert end "abcde"
.t configure -state disabled
pack .t

set fd [open a.txt w]
puts $fd [.t get 1.0 end]
close $fd

留下您的意見

Theme Design by devolux.org. Converted by Wordpress To Blogger for WP Blogger Themes. Sponsored by iBlogtoBlog
This template is brought to you by : allblogtools.com | Blogger Templates