저번 시간에는 Data Elements에 알아보았다. data를 표현하는 법에 대해서 배웠다면 이제 사용자들에게 값을 받아서 활용하는
Input widgets에 대해 알아보자.
버튼, 슬라이더, 텍스트 입력 등과 같은 위젯을 사용하여 앱에 직접적인 상호작용을 지원하는 기능이다.
매우 많은 widget이 존재하기에 필자가 사용해보았던 widget을 기반으로 설명하겠다.
st.button(
label,
key=None,
help=None,
on_click=None,
args=None,
kwargs=None, *,
type="secondary",
icon=None,
disabled=False,
use_container_width=False
) -> bool
가장 많이 쓰이는 widget이 아닐까 생각한다 실제로도 UI작업하면서 많이 사용하기도 하였다.

button의 경우 return값으로 bool값을 받게 되는데
다음과 같이 이용할 수 있다.
import streamlit as st
if st.button(label='test'):
st.write('Wow')
해당 버튼을 누르면 Wow라는 글씨가 화면에 표시된다.
st.selectbox(
label,
options,
index=0,
format_func=special_internal_function,
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
*,
placeholder="Choose an option",
disabled=False,
label_visibility="visible"
) -> any
select box ui를 만들 수 있게 해주는 widget이다.
st.butoon에서 겹치는 기능이나 인자는 생략해서 서술하겠다.

st.multiselect(
label,
options,
default=None,
format_func=special_internal_function,
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
*,
max_selections=None,
placeholder="Choose an option",
disabled=False,
label_visibility="visible"
) -> list
기본적으로 selectbox와 동일하다.
다만, selectbox와 차이점은 selectbox는 하나만 선택가능하지만
multiselect의 경우, 여러개를 선택할 수 있다는 점이다.

st.checkbox(
label,
value=False,
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
*,
disabled=False,
label_visibility="visible"
) -> bool
체크 박스 기능을 지원하는 함수이다.

st.radio(
label,
options,
index=0,
format_func=special_internal_function,
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
*,
disabled=False,
horizontal=False,
captions=None,
label_visibility="visible"
) -> any
radio ui를 제공하는 기능이다.

st.toggle(
label,
value=False,
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
*,
disabled=False,
label_visibility="visible"
) -> bool
토글 기능을 지원하는 함수이다.
체크박스와 같이 결과값으로 bool값을 지원하지만
보이는 형태가 체크박스냐 토글의 차이가 있다.
