라디오 버튼은 wxPython을 사용하여 사용자에게 여러 옵션 중 하나를 선택할 수 있는 인터페이스 요소입니다. wxPython은 파이썬으로 작성된 크로스 플랫폼 GUI 도구킷인 wxWidgets의 파이썬 바인딩입니다.
라디오 버튼은 여러 개의 옵션 중 하나만 선택할 수 있는 버튼입니다. 하나의 그룹으로 묶여 있으며, 그룹 내에서 하나의 버튼만 선택할 수 있습니다.
라디오 버튼 만들기
라디오 버튼을 만들기 위해 wx.RadioButton
클래스를 사용합니다. 각각의 라디오 버튼은 사용자의 선택을 나타내는 고유한 값을 가지고 있습니다.
다음은 두 개의 라디오 버튼을 생성하는 예제 코드입니다:
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, title):
super().__init__(parent, title=title)
panel = wx.Panel(self)
# 첫 번째 라디오 버튼
radio_btn1 = wx.RadioButton(panel, label='Option 1', style=wx.RB_GROUP)
radio_btn2 = wx.RadioButton(panel, label='Option 2')
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(radio_btn1, 0, wx.ALL, 5)
vbox.Add(radio_btn2, 0, wx.ALL, 5)
panel.SetSizer(vbox)
self.Show()
app = wx.App()
MyFrame(None, title='라디오 버튼 예제')
app.MainLoop()
위의 코드에서는 wx.RadioButton
클래스를 이용해 두 개의 라디오 버튼을 생성합니다. 첫 번째 라디오 버튼에는 style=wx.RB_GROUP
을 설정하여 그룹의 첫 번째 버튼으로 지정합니다. 그룹 내에서 하나만 선택할 수 있기 때문에 첫 번째 버튼을 기본 선택으로 설정합니다.
BoxSizer
를 이용해 라디오 버튼을 Panel
에 추가합니다.
wx.App
을 생성하고 MyFrame
을 실행하여 라디오 버튼이 표시되는 간단한 GUI 창을 만듭니다.
이벤트 처리
라디오 버튼의 선택은 사용자의 입력에 의해 변경될 수 있습니다. 이벤트를 처리하여 선택된 라디오 버튼을 확인하고 원하는 작업을 수행할 수 있습니다.
다음은 라디오 버튼을 처리하는 예제 코드입니다:
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, title):
super().__init__(parent, title=title)
panel = wx.Panel(self)
self.radio_btn1 = wx.RadioButton(panel, label='Option 1', style=wx.RB_GROUP)
self.radio_btn2 = wx.RadioButton(panel, label='Option 2')
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(self.radio_btn1, 0, wx.ALL, 5)
vbox.Add(self.radio_btn2, 0, wx.ALL, 5)
panel.SetSizer(vbox)
self.Show()
self.Bind(wx.EVT_RADIOBUTTON, self.on_radio_button)
def on_radio_button(self, event):
radio_btn = event.GetEventObject()
print(f'Selected: {radio_btn.GetLabel()}')
app = wx.App()
MyFrame(None, title='라디오 버튼 예제')
app.MainLoop()
위의 코드에서 우리는 wx.EVT_RADIOBUTTON
이벤트를 처리하여 사용자가 라디오 버튼을 선택할 때마다 on_radio_button
메소드가 호출되도록 합니다. 선택된 라디오 버튼의 레이블을 얻기 위해 event.GetEventObject()
메소드를 사용합니다. 이 메소드는 이벤트를 발생시킨 객체를 반환합니다.
위의 코드는 선택된 라디오 버튼의 레이블을 콘솔에 출력합니다. 실제 응용 프로그램에서는 선택된 라디오 버튼의 값을 사용하여 추가적인 작업을 수행할 수 있습니다.
위의 예제는 간단한 라디오 버튼을 만들고 처리하는 방법을 보여줍니다. 필요한 경우 라디오 버튼의 텍스트, 스타일, 이벤트 처리 방식을 수정하여 요구 사항에 맞게 활용할 수 있습니다.