บทนำ
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 |