02 使用Kivy属性改善外观,自定义小部件

发布于:2023-01-09 ⋅ 阅读:(212) ⋅ 点赞:(0)

上一节中,我们学习了安装kivy,并且写了一个简单的Hello Word程序,但它看起来很无聊,我们希望他能够有一个有趣漂亮的外观。

我们将继续修改上次的代码,即:

Kivy 中修改内容的基本方法是更改Widgets Kivy 属性。就我们现在而言,我们可以通过在实例化时传递参数或将它们视为类的属性来设置它们。

让我们为自己设定三个目标:

  • 放大文本
  • 斜体
  • 以不同的方式着色“Hello”“world

放大文本

要自定义 Label 外观,我们必须查看文档以找到合适的 Kivy 属性。对于文字大小,请查看标Label文档并找到font_size列表。它看起来像下面这样:

按照文档,这允许我们以像素为单位设置字体大小,并且默认为“15sp。这是一种特殊的Kivy语法,sp单位根据显示器的DPI和用户的字体大小设置(在某些平台上)自动缩放字体大小;在桌面上,在非hidpi显示器上,它只有15像素。现在,让我们设置一个简单的像素数:

您可以立即运行代码以查看结果。

斜体文本

要使文本变为斜体,过程是相同的。检查Label文档并找到斜体属性条目。你会看到这是italic 默认为False的布尔属性;只需将其设置为 True 即可启用斜线:

运行结果如下:

 

以不同的方式着色“Hello”和“world!”

最后,我们想以不同的方式为Helloworld着色。这里的情况略有不同,因为我们不能使用单个属性设置来修改整个字符串,因为这两个单词应该以不同的方式处理。

因此,我们启用markup

现在,您可以使用 Kivy 标记语法来修改 Label 中的文本。请尝试以下操作:

现在再次运行应用程序,结果现在应类似于下图: 

 

下面是完整的程序:

from kivy.app import App

from kivy.uix.label import Label

class MyApp(App):

    def build(self):

        return Label(text ='[color=#ff0000]Hello[/color] [color=#00ff00]world![/color]',

                     font_size=100,

                     italic=True,

                     markup=True)

if __name__ == '__main__':

    MyApp().run()

 

 

 

 


网站公告

今日签到

点亮在社区的每一天
去签到