Kivy 简明教程

Kivy - Action Bar

Kivy 框架提供 ActionBar 小组件,它充当易于访问的菜单,通常位于应用程序窗口的顶部或底部,有点类似于 Android 中的 ActionBar。

ActionBar 类在 kivy.uix.actionbar 模块中定义。操作栏的外观取决于其内部 ActionView 的组成。ActionView 包含一个或多个 ActionButton,这些按钮由适当的文本标题和/或图标表示。

kivy action bar

ActionView 包含 ActionButton、分隔符或 ActionGroup。ActionGroup 是 ActionButton 的集合。当您单击 ActionGroup 标题时,按钮将显示在下拉菜单中。

当 ActionBar 区域变得太窄而无法容纳所有内容时,小部件将移到 ActionOverflow 区域。

您可能希望在 ActionBar 上始终显示一些 ActionItem,而不管有多少个项目存在。如果将 ActionButton 的 Important 属性设置为 True,它将在栏上获得优先级位置。

Example

下面给出的代码在应用程序窗口的底部放置了一个标签和一个 ActionBar。ActionBar 显示几个 ActionButton,每个按钮的“on_press”事件都会将其标签标题更新为其自身文本属性。

App 代码由 myActionApp 类组成,其 build 方法通过加载关联的 kv 文件脚本构造窗口的外观。

Python 代码如下所示 −

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.core.window import Window

Window.size = (720,400)

class mywidget(Widget):
   def pressed(self, obj):
   self.ids.l1.text=obj.text

class myActionApp(App):
   def build(self):
      return mywidget()

myActionApp().run()

在此,mywidget 类是 Widget 类的子类。按照 kv 语言脚本(保存为 myAction.kv)的规定,使用两个按钮编写 ActionBar。它还放置了一个标签以显示按下的 ActionButton 的标题。

<mywidget>
   Label:
      id:l1
      text:'Hello'
      pos_hint:{'center_x':.5, 'center_y':1}
      pos:(root.width/2-150, root.height/2-50)
      font_size:48
      size:(300,100)
   ActionBar:
      size:root.width, 50
      pos_hint: {'top':1}
      background_color: .6, 4, .2, .6
      ActionView:
         use_separator: True
         ActionPrevious:
            title: 'Action Bar'
            with_previous: False
         ActionOverflow:
         ActionButton:
            icon: 'atlas://data/images/defaulttheme/audio-volume-high'
         ActionButton:
            important: True
            text: 'Important'
            on_press:root.pressed(self)
         ActionButton:
            text: 'Btn1'
            on_press:root.pressed(self)

Output

kivy action bar important