關於kivy內label功能有二部分內容,一個是label小部件屬性,另一個是label文本標記屬性,實操練習的效果圖如下:
.
現將label常用的這二類屬性整理如下:
現在我們來進行實操練習,在pycharm里先新建一個項目,然后在項目內新建main.py文件,內容代碼如下:
from kivy.app import App from kivy.uix.label import Label from kivy.uix.boxlayout import BoxLayout class LabelBoxLayout(BoxLayout): def __init__(self,**kwargs): super(LabelBoxLayout, self).__init__(**kwargs) #設置引用時,markup屬性必須設置為真(True、1) #將Label文本標記,單擊Lable文本時會觸發綁定的事件,單擊hello文本則不會 label_ref=Label(text='你好[ref=label]Label[/ref]',markup=True,color=(.9,.2,.1,1)) #綁定觸發事件,回調方法 label_ref.bind(on_ref_press=self.print_it) self.add_widget(label_ref) #未使用到self,建議設置為靜態方法 @staticmethod def print_it(*args): print('print_it已經運行') class LabelApp(App): def build(self): return LabelBoxLayout() if __name__ =='__main__': LabelApp().run()
再建一個label.kv文件,內容代碼如下:
<LabelBoxLayout>: canvas: Color: rgba:1,1,1,1 Rectangle: pos:self.pos size:self.size orientation:'vertical' #指定布局方向 Label: #添加一個標簽,[ref]標記的內容是可以做為觸發事件的標記 text:'[ref="click"]只能[/ref][sub]顯示[/sub][color=#"FFFF00"]字體中[/color]可用的符號' font_size:30 #字體大小 bold:True #字體加粗 color:.9,.2,.1,1 #字體顏色 outline_color:0,0,1 #添加文本輪廓顏色 outline_width:1 #添加文本輪廓寬度 text_size:cm(8),mm(20) #標簽文本框大小 halign:'right' #水平對齊方式 valign:'middle' #垂直對齊方式 strikethrough:True #是否添加刪除線 shorten:True #文本長度比文本框大是縮短文本 shorten_from:'right' #當shorten:True時,從right右方向縮短文本 markup:True #觸發事件 on_ref_press: print('ref命名的單擊事件已經運行') root.print_it() Label: #設置背景 canvas: Color: rgba:(.1,.1,.1,.1) Rectangle: pos:self.pos size:self.size text:'只能[sup]顯示[/sup]字體中可用的符號' font_size:20 color:.2,.2,.9,1 bold:True text_size:cm(10),cm(2) halign:'left' valign:'top' underline:True #是否添加下划線 line_height:2.0 #行高 markup:True
本文項目源碼文件包可點此下載,下載可自行調試學習。
因有同學問到我的kivy學習資料里支持中文的方法是怎么解決的,我將解決中文的方法鏈接貼在這里,大家去照着做就可以了,很簡單點擊這個鏈接進入:kivy全局中文支持最簡單的解決方法。