
- Kivy 教程
- Kivy - 首頁
- Kivy 基礎
- Kivy - 入門
- Kivy - 安裝
- Kivy - 架構
- Kivy - 檔案語法
- Kivy - 應用
- Kivy - Hello World
- Kivy - 應用生命週期
- Kivy - 事件
- Kivy - 屬性
- Kivy - 輸入
- Kivy - 行為
- Kivy 按鈕
- Kivy - 按鈕
- Kivy - 按鈕事件
- Kivy - 按鈕顏色
- Kivy - 按鈕大小
- Kivy - 按鈕位置
- Kivy - 圓形按鈕
- Kivy - 停用按鈕
- Kivy - 圖片按鈕
- Kivy 元件
- Kivy - 元件
- Kivy - 標籤
- Kivy - 文字輸入
- Kivy - 畫布
- Kivy - 直線
- Kivy - 複選框
- Kivy - 下拉列表
- Kivy - 視窗
- Kivy - 滾動檢視
- Kivy - 旋轉木馬
- Kivy - 滑塊
- Kivy - 圖片
- Kivy - 彈出視窗
- Kivy - 開關
- Kivy - 微調器
- Kivy - 分隔器
- Kivy - 進度條
- Kivy - 氣泡
- Kivy - 標籤面板
- Kivy - 散點圖
- Kivy - 手風琴
- Kivy - 檔案選擇器
- Kivy - 顏色選擇器
- Kivy - 程式碼輸入
- Kivy - 模態檢視
- Kivy - 切換按鈕
- Kivy - 攝像頭
- Kivy - 樹檢視
- Kivy - reStructuredText
- Kivy - 操作欄
- Kivy - 影片播放器
- Kivy - 模板檢視
- Kivy - 虛擬鍵盤
- Kivy - 觸控漣漪
- Kivy - 音訊
- Kivy - 影片
- Kivy - 拼寫檢查
- Kivy - 效果
- Kivy - 輸入記錄器
- Kivy - OpenGL
- Kivy - 文字
- Kivy - 文字標記
- Kivy - 設定
- Kivy 佈局
- Kivy - 佈局
- Kivy - 浮動佈局
- Kivy - 網格佈局
- Kivy - 箱式佈局
- Kivy - 堆疊佈局
- Kivy - 錨點佈局
- Kivy - 相對佈局
- Kivy - 分頁佈局
- Kivy - 迴圈佈局
- Kivy - 佈局巢狀
- Kivy 高階概念
- Kivy - 配置物件
- Kivy - 圖集
- Kivy - 資料載入器
- Kivy - 快取管理器
- Kivy - 控制檯
- Kivy - 動畫
- Kivy - 多筆畫
- Kivy - 時鐘
- Kivy - SVG
- Kivy - UrlRequest
- Kivy - 剪貼簿
- Kivy - 工廠
- Kivy - 手勢
- Kivy - 語言
- Kivy - 圖形
- Kivy - 繪圖
- Kivy - 打包
- Kivy - Garden
- Kivy - 儲存
- Kivy - 向量
- Kivy - 工具函式
- Kivy - 檢查器
- Kivy - 工具
- Kivy - 日誌記錄器
- Kivy - 幀緩衝區
- Kivy 應用和專案
- Kivy - 繪圖應用
- Kivy - 計算器應用
- Kivy - 計時器應用
- Kivy - 攝像頭處理
- Kivy - 圖片檢視器
- Kivy - 貝塞爾曲線
- Kivy - 畫布壓力測試
- Kivy - 繪製圓形
- Kivy - 元件動畫
- Kivy - 其他
- Kivy 有用資源
- Kivy - 快速指南
- Kivy - 有用資源
- Kivy - 討論
Kivy - 標籤
標籤是任何GUI工具包中最常用的元件之一。標籤顯示任何不能直接編輯的文字內容。標籤用於顯示頁面標題,作為欄位名稱的佔位符以及文字框之類的輸入控制元件,或者只是為了呈現輸出訊息。
在Kivy中,標籤元件是`kivy.uix.label`模組中定義的`Label`類的物件。
from kivy.uix.Label import Label lbl = Label(**kwargs)
要自定義標籤物件,您可以使用以下屬性作為建構函式的關鍵字引數:
bold - `bold`是`BooleanProperty`,預設為`False`。將其設定為`True`以使用粗體字型的版本。請注意,根據您的字型,粗體屬性可能對您的文字渲染沒有影響。
color - 文字顏色,格式為(r, g, b, a)。它是`ColorProperty`,預設為[1, 1, 1, 1]。
disabled_color - 標籤停用時文字的顏色,格式為(r, g, b, a)。它是`ColorProperty`,預設為[1, 1, 1, .3]。
font_name - 要使用的字型的檔名。`font_name`是`StringProperty`,預設為'Roboto'。此值取自配置。
font_size - 文字的字型大小(以畫素為單位)。它是`NumericProperty`,預設為15sp。
halign - 文字的水平對齊方式。`halign`是`OptionProperty`,預設為'auto'。可用選項包括:auto、left、center、right和justify。
italic - 指示使用字型的斜體版本。`italic`是`BooleanProperty`,預設為`False`。
markup - 如果為`True`,則將使用`MarkupLabel`渲染文字:您可以使用標籤更改文字的樣式。
outline_color - 文字輪廓的顏色,格式為(r, g, b)。它是`ColorProperty`,預設為[0, 0, 0, 1]。
padding - 文字的填充,格式為[padding_left, padding_top, padding_right, padding_bottom]。`padding`也接受兩個引數的形式[padding_horizontal, padding_vertical]和一個引數的形式[padding]。
strikethrough - 為文字新增刪除線。`strikethrough`是`BooleanProperty`,預設為`False`。
text - 標籤標題的文字。`text`是`StringProperty`,預設為''。例如:
lbl = Label(text='Hello world')
text_size - 預設情況下,標籤不受任何邊界框的約束。您可以使用此屬性設定標籤的大小約束。文字將自動流入約束中。因此,雖然字型大小不會減小,但文字將盡可能好地排列到框中,任何仍在框外的文字都將被裁剪。
Label(text='long text . . . ', text_size=(200, None))
`text_size`是`ListProperty`,預設為(None, None),表示預設情況下沒有大小限制。
texture - 文字的紋理物件。當屬性更改時,文字會自動呈現。`texture`是`ObjectProperty`,預設為`None`。
texture_size - 文字的紋理大小。大小由字型大小和文字決定。如果`text_size`為[None, None],則紋理將是適合文字所需的大小,否則它將被裁剪以適合`text_size`。
underline - 為文字新增下劃線。`underline`是`BooleanProperty`,預設為`False`。
valign - 文字的垂直對齊方式。它是`OptionProperty`,預設為'bottom'。可用選項包括:'bottom'、'middle'(或'center')和'top'。
對齊方式
雖然`Label`類具有`halign`和`valign`屬性,但文字影像(紋理)的大小僅足以將字元放置在`Label`的中心。
`valign`屬性將不起作用,而`halign`屬性只有在文字包含換行符時才有效;即使`halign`設定為left(預設值),單行文字也會顯示為居中。
要使對齊屬性生效,請設定`text_size`,這是文字在其內對齊的邊界框的大小。例如,以下程式碼將此大小繫結到`Label`的大小,因此文字將在元件邊界內對齊。
Label: text_size: self.size halign: 'left' valign: 'middle'
標記
如果`Label`的`markup`屬性為`True`,則將使用`Text`標記渲染文字,用於內聯文字樣式。就像html標籤一樣,`Text`標記標籤有[tag],並且應該有相應的[/tag]閉合標籤。例如:
[b]Hello [color=ff0000]world[/color][/b]
可以使用以下標籤來構造標籤文字:
序號 | 標籤和文字描述 |
---|---|
1 | [b][/b] 啟用粗體文字 |
2 | [i][/i] 啟用斜體文字 |
3 | [u][/u] 下劃線文字 |
4 | [s][/s] 刪除線文字 |
5 | [font=<str>][/font] 更改字型(注意 - 這指的是TTF檔案或註冊的別名) |
6 | [size=<size>][/size] 更改字型大小。 |
7 | [color=#<color>][/color] 更改文字顏色 |
8 | [sub][/sub] 相對於之前的文字,在下標位置顯示文字。 |
9 | [sup][/sup] 相對於之前的文字,在上標位置顯示文字。 |
例如,這將建立一個標籤“hello world”,其中“world”為粗體
l = Label(text='Hello [b]World[/b]', markup=True)
大小
`Label`的大小不受文字內容的影響,文字也不受大小的影響。為了控制大小,必須指定`text_size`來約束文字和/或將大小繫結到`texture_size`以隨著文字增長。
例如,在kv語言指令碼中,此標籤的大小將設定為文字內容(加上填充):
Label: size: self.texture_size
示例
我們現在將在以下示例中演示一些`Label`屬性的使用。這裡將三個標籤放置在垂直的盒子佈局中。每個標籤都使用`Label`類的一些特定屬性構建。
from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.label import Label from kivy.graphics import Color, Rectangle from kivy.core.window import Window Window.size = (720, 350) class LblApp(App): def build(self): layout = BoxLayout(orientation='vertical') self.l1 = Label( text='Hello World', color=[1, 0, 0, 1], font_size=40, bold=True ) self.l2 = Label( text='Hello Python', color=[0, 1, 0, 1], font_size=40, italic=True ) self.l3 = Label( text='Hello Kivy', color=[0, 0, 1, 1], font_size=40, font_name='Arial', underline=True ) layout.add_widget(self.l1) layout.add_widget(self.l2) layout.add_widget(self.l3) return layout if __name__ == '__main__': LblApp().run()
輸出
執行上述程式時,將顯示三個標籤,其標題具有程式碼中定義的相應格式屬性:

帶有kv檔案的示例
現在將使用“kv”檔案建立上述設計。除了在上面的Python程式碼中使用的屬性外,我們還為每個標籤應用背景顏色。
`Label`類不支援背景顏色屬性。為了克服這個問題,我們在按鈕的畫布上繪製一個具有所需顏色的填充顏色的矩形。例如:
Label: canvas: Color : rgba: 0, 1, 0, 0.25 Rectangle: pos:self.pos size : self.size
我們利用此功能為三個標籤應用不同的背景顏色。
BoxLayout: orientation:'vertical' Label: text:'Hello World' color : [1,0,0,1] font_size : 40 bold : True canvas: Color : rgba: 0, 1, 0, 0.25 Rectangle: pos:self.pos size : self.size Label: text:'Hello Python' color:[0,1,0,1] font_size:40 italic:True canvas: Color : rgba: 1, 1, 0, 0.1 Rectangle: pos:self.pos size : self.size Label: text:'Hello Kivy' color:[0,0,1,1] font_size:40 font_name:'Arial' underline:True
輸出
將此“lbl.kv”檔案新增到Python Kivy應用程式中,並執行程式。您應該獲得以下顯示,顯示三個具有相應背景顏色的標籤。
