BoxLayout ใน Kivy ช่วยจัดวางวิดเจ็ตในแนวนอนหรือแนวตั้งได้อย่างยืดหยุ่น ตัวอย่างนี้สร้าง UI ที่มีปุ่มหลายตัว จัดกลุ่มด้วย BoxLayout ซ้อนกัน พร้อมกำหนดสีและขนาดต่างกัน
ตัวอย่างโค้ด
import kivy
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
class BoxLayoutApp(App):
def build(self):
# กล่องชั้นนอก แนวตั้ง
outerBox = BoxLayout(orientation='vertical')
# แถว 1: แนวนอน
Row1 = BoxLayout(orientation='horizontal')
btn1 = Button(text="One", background_normal='', background_color=(1, 0, 1, 1), font_size=25, size_hint=(0.7, 1))
btn2 = Button(text="Two", background_normal='', background_color=(1, 1, 0, 0.8), font_size=25, size_hint=(0.7, 1))
Row1.add_widget(btn1)
Row1.add_widget(btn2)
# แถว 2 และ 3: แนวตั้ง
Row_2_3 = BoxLayout(orientation='vertical')
btn3 = Button(text="Three", background_normal='', background_color=(1,0,0,0.75), font_size=25, size_hint=(1, 10))
btn4 = Button(text="Four", background_normal='', background_color=(0,1,0,0.75), font_size=25, size_hint=(1, 15))
Row_2_3.add_widget(btn3)
Row_2_3.add_widget(btn4)
# รวมทุกอย่าง
outerBox.add_widget(Row1)
outerBox.add_widget(Row_2_3)
return outerBox
if __name__ == '__main__':
BoxLayoutApp().run()
ผลลัพธ์
