Kivy - 按鈕



按鈕是任何 GUI 庫(包括 Kivy)中最重要的元素之一。按鈕物件包含一個標籤,通常用於指示其用途(例如,一個帶有“開始”標題的按鈕,或一個帶有“資料夾”圖示指示“開啟檔案操作”的按鈕),並且能夠響應某些事件,例如觸控或滑鼠點選。

Button 類在 "kivy.uix.button" 模組中定義。Button 物件的外觀可以透過在 Label 類中定義的相同屬性集進行配置。Button 類也繼承自 ButtonBehavior 混合類。

Button 物件使用以下語法例項化:

b1 = Button(**kwargs)

要配置按鈕,您可以將屬性指定為建構函式的關鍵字引數:

  • background_color - 按鈕的背景顏色,是一個 ColorProperty,格式為 (r, g, b, a),預設值為 [1,1,1,1]。

  • background_disabled_down - 按鈕的背景圖片,是一個 StringProperty,包含圖片檔案路徑的字串,用於按鈕停用且按下時的預設圖形表示。

  • background_disabled_normal - 按鈕的背景圖片,也是一個圖片路徑,用於按鈕停用且未按下時的預設圖形表示。

  • background_down - 按鈕的背景圖片,用於按鈕按下時的預設圖形表示。

  • background_normal - 按鈕的背景圖片,用於按鈕未按下時的預設圖形表示。

除了以上屬性外,Button 還繼承了 Label 類的屬性,其中一些如下:

  • bold - 指示使用字型的粗體版本。它是一個 BooleanProperty,預設為 False。

  • underline - 為文字新增下劃線。此功能需要 SDL2 文字提供程式,它是一個 BooleanProperty,預設為 False。

  • strikethrough - 為文字新增刪除線。此功能需要 SDL2 文字提供程式。它是一個 BooleanProperty,預設為 False。

  • text - 標籤的文字。例如:

widget = Button(text='Hello world')

text 是一個 StringProperty,預設為 ''。

  • color - 文字顏色,格式為 (r, g, b, a)。它是一個 ColorProperty,預設為 [1, 1, 1, 1]。

  • font_size - 文字的字型大小,以畫素為單位。"font_size" 是一個 NumericProperty,預設為 15sp。

Button 類還繼承了 ButtonBehavior 類的 state 屬性。

  • state - 按鈕的狀態,必須是 'normal' 或 'down' 之一。當按鈕當前被觸控/點選時,狀態為 'down',否則為 'normal'。它是一個 OptionProperty,預設為 'normal'。

Button 類還繼承了 Widget 類的屬性,例如 disabled, height, widthpos 等。

如果要在 Kivy 應用程式視窗上顯示一個 Button,則可以透過在 build() 方法中宣告一個 Button 物件,或使用 "kv" 語言指令碼。

使用 build() 方法顯示按鈕

讓我們使用上面解釋的一些屬性配置 Button:

示例

from kivy.app import App
from kivy.uix.button import Button
from kivy.config import Config

# Configuration
Config.set('graphics', 'width', '720')
Config.set('graphics', 'height', '300')
Config.set('graphics', 'resizable', '1')

class HelloApp(App):
   def build(self):
      b1 = Button(text = "A Kivy Button",
         font_size=50,
         color = [0.8, 0.2, 0.3, 1])
      return b1

app = HelloApp()
app.run()

輸出

執行此程式碼,您將獲得以下輸出

Kivy Button1

使用 "kv" 語言方法顯示按鈕

示例

將以下指令碼儲存為 "hello.kv"。

Button:
   text: 'A Kivy Button'
   font_size: '20pt'
   underline: True
   background_color: [1,0,0,1]
   size_hint: (.25, .25)
   pos_hint: {'center_x':.5, 'center_y':.5}

輸出

在 App 類中註釋掉 build() 方法,然後再次執行應用程式。您將獲得以下視窗作為輸出

kivy button2
廣告

© . All rights reserved.