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.