Kivy - 动作栏



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,它将获得在栏上的优先位置。

示例

下面给出的代码将一个标签和一个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语言脚本(保存为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)

输出

Kivy Action Bar Important
广告
© . All rights reserved.