Kivy - 操作栏
Kivy 框架提供了 ActionBar 小部件,它充当易于访问的菜单,通常位于应用程序窗口的顶部或底部,有点类似于 Android 中的 ActionBar。
ActionBar 类在 kivy.uix.actionbar 模块中定义。操作栏的外观取决于其中 ActionView 的组成。ActionView 包含一个或多个 ActionButton,由适当的文本标题和/或图标表示。
ActionView 包含 ActionButton、分隔符或 ActionGroup。ActionGroup 是 ActionButton 的集合。单击 ActionGroup 标题时,按钮会显示在下拉列表中。
当 ActionBar 区域变得太小而无法容纳所有内容时,小部件会移至 ActionOverflow 区域。
您可能希望始终在 ActionBar 上显示一些 ActionItem,而不管当前项目的数量如何。如果将 ActionButton 的 Important 属性设置为 True,它将在栏上获得优先位置。
示例
下面给出的代码将标签和 ActionBar 放在应用程序窗口的底部。ActionBar 显示几个 ActionButton,每个 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 语言脚本将保存为 myAaction.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)