关于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
本文项目源码文件包可点此下载,下载可自行调试学习。