Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

FloatLayout trong Kivy (Python)

Kivy là thư viện Python mã nguồn mở để phát triển ứng dụng đa điểm chạm (multi-touch) trên Android và Desktop. FloatLayout cho phép đặt các widget (như Button) tại vị trí tuyệt đối hoặc tương đối so với cửa sổ cha.

Vị trí tuyệt đối (Absolute position)

Đặt nút bấm tại tọa độ cố định pos=(x, y). Khi thay đổi kích thước cửa sổ, nút bấm giữ nguyên tọa độ tuyệt đối, có thể bị ẩn nếu cửa sổ co nhỏ.

Ví dụ

import kivy
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.floatlayout import FloatLayout

class FloatApp(App):
    def build(self):
        Flt = FloatLayout()
        btn = Button(text='Hello world',
                     size_hint=(0.5, 0.2),
                     pos=(100, 200),
                     background_normal='',
                     background_color=(1, 0, 1, 1))
        Flt.add_widget(btn)
        return Flt

FloatApp().run()

Vị trí tương đối (Relative position)

Dùng pos_hint với tỷ lệ (ví dụ {'x': .2, 'y': .2}). Khi cửa sổ thay đổi kích thước, nút bấm di chuyển theo tỷ lệ, luôn hiển thị trong vùng nhìn thấy.

Ví dụ

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.floatlayout import FloatLayout
from kivy.config import Config
Config.set('graphics', 'resizable', True)

class FloatApp(App):
    def build(self):
        Flt = FloatLayout()
        btn = Button(text='Hello world',
                     size_hint=(0.2, 0.2),
                     pos_hint={'x': .2, 'y': .2},
                     background_normal='',
                     background_color=(1, 1, 0, 0.8))
        Flt.add_widget(btn)
        return Flt

FloatApp().run()