コンテンツにスキップ

ボタンと動作原理

アプリに「実行」や「決定」などのきっかけを作るための基本ウィジェットです。

st.button() は、ボタンが押されると True を返し、それ以外は False を返します。 基本的には if 文と組み合わせて使います。

button_basic.py
import streamlit as st
st.title("ボタンの基本")
st.write("ボタンを押すと、戻り値が `True` になり、if文の中が実行されます。")
# ボタンを作成し、押されたかどうかを変数で受け取る
is_pressed = st.button("押してね")
if is_pressed:
st.success("ボタンが押されました!")
st.balloons()
st.write("---")
st.write("(ボタンを押すと画面全体が再実行されることに注目してください)")

ボタンを押すと風船が飛びます。

ボタンの状態に応じて表示を切り替えるパターンです。

「ボタンが押されていない時」にメッセージを出したい場合に使います。

「ボタンを押すまでは、それ以降の処理を行わせたくない」場合に使います。st.stop() はそこでプログラムの読み込みを中断する強力なコマンドです。

button_advanced.py
import streamlit as st
st.title("ボタンの応用テクニック")
# 1. elseとの組み合わせ
st.subheader("1. else文を使う")
if st.button("決定"):
st.success("処理を実行しました")
else:
st.info("ボタンを押して処理を開始してください")
st.write("---")
# 2. st.stop()との組み合わせ
st.subheader("2. st.stop()を使う")
st.write("下のボタンを押さないと、秘密のメッセージは見られません。")
if not st.button("秘密を見る"):
st.stop() # ここでプログラムの実行を強制停止する
# stop()より下の行は、ボタンが押された時だけ実行されます
st.success("秘密のメッセージ:Streamlitはとても便利!")

動作を確認してみましょう。