Kivy 简明教程

Kivy - Buttons

按钮是任何 GUI 库(包括 Kivy)中最重要元素之一。按钮对象包含一个标签,通常用来指示它的用途(例如一个带有“开始”标题的标签,或一个带有“文件夹”图标用来指示“打开文件操作”的标签),并且具有响应某些事件(例如触摸或鼠标点击)的能力。

Button 类在“kivy.uix.button”模块中定义。Button 对象的外观可以通过在 Label 类中定义的相同属性集进行配置。Button 类还继承自 ButtonBehavior 混入。

Button 对象使用以下语法实例化:

b1 = Button(**kwargs)

为了配置按钮,你可以指定它的属性作为构造函数的关键字参数:

  1. background_color − 在 (r, g, b, a) 格式中,按钮的背景色是一个 ColorProperty,其默认值为 [1,1,1,1]。

  2. background_disabled_down − 按钮的背景图片是一个 StringProperty,包含指向图像文件的路径的字符串,当按钮被禁用并按下时用作默认图形表示。

  3. background_disabled_normal − 按钮的背景图片也是一条图像路径,当按钮被禁用并且未按下时用作默认图形表示。

  4. background_down − 在按下按钮时作为默认图形表示使用的按钮的背景图像。

  5. background_normal − 在未按下按钮时作为默认图形表示使用的按钮的背景图像。

除了上面提到的内容,Button 还继承自 Label 类的属性,其中的部分属性如下:

  1. bold − 表示使用粗体字的字体。它是一个 BooleanProperty,其默认值为 False。

  2. underline − 在文本下添加下划线。此功能需要 SDL2 文本提供程序,它是一个 BooleanProperty,其默认值为 False。

  3. strikethrough − 在文本中添加删除线。此功能需要 SDL2 文本提供程序。它是一个 BooleanProperty,其默认值为 False。

  4. text − 标签的文本。例如:

widget = Button(text='Hello world')

text 是一个 StringProperty,其默认值为 ''。

  1. color − 文本颜色,格式为 (r, g, b, a)。它是一个 ColorProperty,其默认值为 [1, 1, 1, 1]。

  2. font_size − 以像素为单位的文本字体大小。“font_size”是一个 NumericProperty,默认为 15sp。

Button 类还继承了 ButtonBehavior 类的 state 属性。

  1. state − 按钮的状态,必须是 'normal' 或 'down' 之一。仅当按钮当前被触摸/单击时,其状态才为 'down',否则为 'normal'。它是一个 OptionProperty,默认为 'normal'。

Button 类还继承了诸如 disabled, height, widthpos 等来自 Widget 类中的属性。

如果你想在 Kivy 应用程序窗口上显示按钮,则可以通过在 build() 方法中声明一个 Button 对象或者使用“kv”语言脚本来实现。

Displaying a Button Using the build() Method

让我们使用上面解释的一些属性配置 Button −

Example

from kivy.app import App
from kivy.uix.button import Button
from kivy.config import Config

# Configuration
Config.set('graphics', 'width', '720')
Config.set('graphics', 'height', '300')
Config.set('graphics', 'resizable', '1')

class HelloApp(App):
   def build(self):
      b1 = Button(text = "A Kivy Button",
         font_size=50,
         color = [0.8, 0.2, 0.3, 1])
      return b1

app = HelloApp()
app.run()

Output

运行此代码,你将获得以下 output

kivy button1

Displaying a Button Using the "kv" Language Method

Example

将以下脚本另存为“hello.kv”。

Button:
   text: 'A Kivy Button'
   font_size: '20pt'
   underline: True
   background_color: [1,0,0,1]
   size_hint: (.25, .25)
   pos_hint: {'center_x':.5, 'center_y':.5}

Output

注释掉 App 类中的 build() 方法,然后重新运行该应用程序。你将获得以下窗口作为 output

kivy button2