Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Kivy로 만드는 Python 체크박스 UI: GridLayout과 CheckBox 활용법

Kivy는 멀티터치 앱처럼 혁신적인 사용자 인터페이스를 갖춘 애플리케이션을 빠르게 개발할 수 있도록 도와주는 오픈 소스 Python 라이브러리입니다. 안드로이드 모바일 앱은 물론 데스크톱 애플리케이션 개발에도 폭넓게 사용되고 있습니다.

GridLayout과 CheckBox 조합하기

이번 글에서는 Kivy의 GridLayoutCheckBox 위젯을 함께 사용하는 방법을 살펴보겠습니다.

필요한 모듈을 임포트한 뒤, 2개의 열(column)을 가진 그리드 레이아웃을 생성합니다. 한 열에는 시간대를 표시하는 라벨(Label)을 배치하고, 다른 열에는 체크박스를 배치하는 구조입니다.

예제 코드

import kivy
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.label import Label
from kivy.uix.checkbox import CheckBox
from kivy.uix.gridlayout import GridLayout

# 앱 위젯을 담는 컨테이너 클래스
class chk_box(GridLayout):

    def __init__(self, **kwargs):
        super(chk_box, self).__init__(**kwargs)

        # 2열 그리드 레이아웃 설정
        self.cols = 2

        # 체크박스와 라벨 추가
        self.add_widget(Label(text='10 AM to 11 AM'))
        self.active = CheckBox(active=True)
        self.add_widget(self.active)

        self.add_widget(Label(text='3 PM to 4 PM'))
        self.active = CheckBox(active=False)
        self.add_widget(self.active)

class CheckBoxApp(App):
    def build(self):
        return chk_box()

CheckBoxApp().run()

코드 설명

  • self.cols = 2: 그리드 레이아웃의 열 개수를 2로 지정하여 라벨과 체크박스가 좌우로 나란히 정렬되도록 합니다.
  • CheckBox(active=True): active 속성을 True로 설정하면 화면에 체크된 상태로 표시됩니다.
  • add_widget(): 라벨과 체크박스를 그리드 레이아웃에 순서대로 추가합니다.

실행 결과

위 코드를 실행하면 두 개의 시간대 라벨 옆에 체크박스가 배치된 화면을 확인할 수 있습니다. '10 AM to 11 AM' 항목은 기본적으로 체크된 상태로, '3 PM to 4 PM' 항목은 체크 해제된 상태로 나타납니다.

Kivy로 만드는 Python 체크박스 UI: GridLayout과 CheckBox 활용법

마무리

이처럼 Kivy의 GridLayout을 활용하면 라벨과 체크박스를 손쉽게 정렬하여 직관적인 선택형 UI를 구성할 수 있습니다. 여기에 bind() 메서드를 사용해 체크 상태 변화에 따른 이벤트를 연결하면, 일정 선택이나 설정 화면 같은 실용적인 기능도 간단히 구현할 수 있습니다.