
- Kivy 教程
- Kivy - 首頁
- Kivy 基礎
- Kivy - 入門
- Kivy - 安裝
- Kivy - 架構
- Kivy - 檔案語法
- Kivy - 應用程式
- Kivy - Hello World
- Kivy - 應用程式生命週期
- Kivy - 事件
- Kivy - 屬性
- Kivy - 輸入
- Kivy - 行為
- Kivy 按鈕
- Kivy - 按鈕
- Kivy - 按鈕事件
- Kivy - 按鈕顏色
- Kivy - 按鈕大小
- Kivy - 按鈕位置
- Kivy - 圓形按鈕
- Kivy - 停用按鈕
- Kivy - 圖片按鈕
- Kivy 小部件
- Kivy - 小部件
- Kivy - 標籤
- Kivy - 文字輸入
- Kivy - 畫布
- Kivy - 線
- Kivy - 複選框
- Kivy - 下拉列表
- Kivy - 視窗
- Kivy - 滾動檢視
- Kivy - 走馬燈
- Kivy - 滑塊
- Kivy - 圖片
- Kivy - 彈出視窗
- Kivy - 開關
- Kivy - 微調器
- Kivy - 分隔器
- Kivy - 進度條
- Kivy - 氣泡
- Kivy - 標籤頁面板
- Kivy - 散點圖
- Kivy - 手風琴
- Kivy - 檔案選擇器
- Kivy - 顏色選擇器
- Kivy - 程式碼輸入
- Kivy - 模態檢視
- Kivy - 切換按鈕
- Kivy - 相機
- Kivy - 樹形檢視
- Kivy - reStructuredText
- Kivy - 操作欄
- Kivy - 媒體播放器
- Kivy - 模板檢視
- Kivy - 虛擬鍵盤
- Kivy - 觸控漣漪
- Kivy - 音訊
- Kivy - 影片
- Kivy - 拼寫檢查
- Kivy - 效果
- Kivy - 輸入記錄器
- Kivy - OpenGL
- Kivy - 文字
- Kivy - 文字標記
- Kivy - 設定
- Kivy 佈局
- Kivy - 佈局
- Kivy - 浮動佈局
- Kivy - 網格佈局
- Kivy - 箱式佈局
- Kivy - 堆疊佈局
- Kivy - 錨點佈局
- Kivy - 相對佈局
- Kivy - 頁面佈局
- Kivy - 回收佈局
- Kivy - 佈局巢狀
- Kivy 高階概念
- Kivy - 配置物件
- Kivy - 圖集
- Kivy - 資料載入器
- Kivy - 快取管理器
- Kivy - 控制檯
- Kivy - 動畫
- Kivy - 多筆畫
- Kivy - 時鐘
- Kivy - SVG
- Kivy - UrlRequest
- Kivy - 剪貼簿
- Kivy - 工廠
- Kivy - 手勢
- Kivy - 語言
- Kivy - 圖形
- Kivy - 繪製
- Kivy - 打包
- Kivy - 花園
- Kivy - 儲存
- Kivy - 向量
- Kivy - 工具類
- Kivy - 檢查器
- Kivy - 工具
- Kivy - 日誌記錄器
- Kivy - 幀緩衝區
- Kivy 應用程式和專案
- Kivy - 繪圖應用程式
- Kivy - 計算器應用程式
- Kivy - 計時器應用程式
- Kivy - 相機處理
- Kivy - 圖片檢視器
- Kivy - 貝塞爾曲線
- Kivy - 畫布壓力測試
- Kivy - 圓形繪製
- Kivy - 小部件動畫
- Kivy - 其他
- Kivy 有用資源
- Kivy - 快速指南
- Kivy - 有用資源
- Kivy - 討論
Kivy - 錨點佈局
當使用此佈局時,我們可以以某種方式在其內部排列小部件,使其固定到佈局尺寸的某個位置。AnchorLayout 類在“kivy.uix.anchorlayout”模組中定義。
from kivy.uix.anchorlayout import AnchorLayout lo = AnchorLayout(**kwargs)
關鍵字引數
anchor_x − 定義要放置的小部件的水平錨點。它是一個 OptionProperty,其值必須來自'left'、'center'或'right'。預設為'center'。
anchor_y − 定義要放置的小部件的垂直錨點。它是一個 OptionProperty,其值必須來自'top'、'center'或'bottom'。預設為'center'。
padding − 小部件框與其子項之間的填充,以畫素為單位:[padding_left, padding_top, padding_right, padding_bottom]。它也接受兩個引數的形式[padding_horizontal, padding_vertical]和一個引數的形式[padding]。padding 是一個 VariableListProperty,預設為 [0, 0, 0, 0]。

AnchorLayout 類繼承了兩個方法“add_widget()”和“remove_widget()”,我們已經在前面的章節中介紹過。
示例 1
以下示例顯示了 AnchorLayout 的典型用法 -
from kivy.app import App from kivy.uix.label import Label from kivy.uix.anchorlayout import AnchorLayout from kivy.core.window import Window Window.size = (720, 400) class DemoApp(App): def build(self): lo = AnchorLayout( anchor_x='left', anchor_y='bottom' ) self.l1 = Label( text='Hello World', font_size=20, size_hint=(None, None), size=(200, 75) ) lo.add_widget(self.l1) return lo if __name__ == '__main__': DemoApp().run()
輸出
可以看出,標籤已固定到佈局的左下角。

使用 AnchorLayout 的 Kivy 應用程式也可以使用“kv”語言指令碼構建 -
AnchorLayout: anchor_x : 'left' anchor_y : 'bottom' Label: id:l1 text: 'Hello World' font_size: '20pt' size_hint : (None, None) size : (200, 75)
示例 2
在下面的示例中,應用程式視窗具有一個頂級 GridLayout,其中包含要排列在 3 行中的小部件。在每一行中,我們放置三個 AnchorLayout,以便視窗包含九個 AnchorLayout,其 anchor-x 和 anchor-y 屬性分別為左上、左中、左下、中上、中中、中下、右上、右中和右下。
在每個佈局中,根據錨點配置放置一個按鈕小部件。
from kivy.app import App from kivy.uix.button import Button from kivy.config import Config from kivy.uix.anchorlayout import AnchorLayout from kivy.uix.gridlayout import GridLayout Config.set('graphics', 'width', '720') Config.set('graphics', 'height', '400') Config.set('graphics', 'resizable', '1') class AnchorApp(App): def build(self): lo = GridLayout(rows=3) ax = ['left', 'center', 'right'] ay = ['top', 'center', 'bottom'] c = 0 # 3X3 grid with anchor layout in each for i in range(3): for j in range(3): print(ax[i], ay[j]) anchrlo = AnchorLayout( anchor_x=ax[i], anchor_y=ay[j] ) b = Button( text=ax[i] + "-" + ay[j], size_hint=(None, None), size=(200, 75), halign=ax[i] ) # red text color for top row, # green for middle row, # blue for bottom row if i == 0: b.color = [1, 0, 0, 1] if i == 1: b.color = [0, 1, 0, 1] if i == 2: b.color = [0, 0, 1, 1] anchrlo.add_widget(b) lo.add_widget(anchrlo) return lo AnchorApp().run()
輸出
執行此程式碼時,它將生成以下輸出視窗 -
