Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ใช้ FloatLayout ใน Kivy สำหรับจัดวาง Widget แบบสัมพัทธ์และสัมบูรณ์


บทนำ

Kivy เป็นไลบรารี Python สำหรับพัฒนาแอปพลิเคชันมัลติทัช รองรับ Android และ Desktop FloatLayout จัดวาง widget ด้วยตำแหน่งสัมบูรณ์ (absolute) หรือสัมพัทธ์ (relative)

1. ตำแหน่งสัมบูรณ์ (Absolute Position)

ใช้ pos=(x, y) ตำแหน่งคงที่ ไม่เปลี่ยนเมื่อปรับขนาดหน้าต่าง

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

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

FloatApp().run()

2. ตำแหน่งสัมพัทธ์ (Relative Position)

ใช้ pos_hint={'x': 0.2, 'y': 0.2} ตำแหน่งเปลี่ยนตามขนาดหน้าต่าง

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):
        layout = FloatLayout()
        btn = Button(text='Hello World',
                     size_hint=(0.2, 0.2),
                     pos_hint={'x': 0.2, 'y': 0.2},
                     background_color=(1, 1, 0, 0.8))
        layout.add_widget(btn)
        return layout

FloatApp().run()

ความแตกต่างสำคัญ

คุณสมบัติAbsolute (pos)Relative (pos_hint)
ตำแหน่งเมื่อ resizeคงที่ปรับตามสัดส่วน
เหมาะสำหรับUI คงที่Responsive UI