Kivy 简明教程
Kivy - Action Bar
Kivy 框架提供 ActionBar 小组件,它充当易于访问的菜单,通常位于应用程序窗口的顶部或底部,有点类似于 Android 中的 ActionBar。
ActionBar 类在 kivy.uix.actionbar 模块中定义。操作栏的外观取决于其内部 ActionView 的组成。ActionView 包含一个或多个 ActionButton,这些按钮由适当的文本标题和/或图标表示。
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)