サイトアイコン アマチュア無線局JS2IIU

【Streamlit】入力ウィジェットを使ってみよう:st.button

こんにちは、JS2IIUです。
Streamlitでは簡単にUIが構築できるだけでなく、ボタンなどのユーザー操作を受け付ける要素も簡単に配置できてしまうのも魅力の一つだと思います。今回もよろしくお願いします。

1. はじめに

Streamlit は、Python のコードだけで手軽に Web アプリケーションが作れる便利なフレームワークです。本記事では、Streamlit の入力ウィジェットのひとつである st.button に焦点を当てて解説します。

ボタンをクリックしたときに処理を実行したり、画面の内容を変えたりするのは、Web アプリではよく使われる基本機能です。この記事では、ボタンの基本的な使い方から、クリックイベントの処理方法、さらにはちょっとした応用例まで、ステップバイステップでわかりやすく紹介していきます。

2. st.button とは?

✔️ st.buttonの役割

st.button は、Streamlit で使える「ボタン」のウィジェットです。
ユーザーがボタンをクリックしたかどうかを検出し、クリックされたときに何らかの処理を実行するのに使います。

✔️ 主な用途の例

3. 基本的な使い方

ここでは、最もシンプルな st.button の使い方を紹介します。

✅ ステップ1:Streamlit のインストール(未インストールの場合)

Bash
pip install streamlit

✅ ステップ2:サンプルコードの作成

Python
import streamlit as st

st.title("ボタンの基本的な使い方")

if st.button("クリックしてね"):
    st.write("ボタンが押されました!")

このコードを app.py などの名前で保存し、以下のコマンドで実行します。

Bash
streamlit run app.py

✅ 解説

4. ボタンの応用例:カウンターアプリを作ろう

ボタンを押すたびにカウントが増える、簡単なアプリを作ってみましょう。

https://js2iiu.com/wp-content/uploads/2025/04/10_01.mov

✅ ステップ1:コードを書く

Python
import streamlit as st

st.title("カウンターアプリ")

# セッションステートにカウント変数を用意
if "count" not in st.session_state:
    st.session_state.count = 0

# ボタンが押されたらカウントを増やす
if st.button("カウントする"):
    st.session_state.count += 1

# 現在のカウントを表示
st.write(f"カウント: {st.session_state.count}")

✅ 解説:セッションステートとは?

5. st.button の引数を詳しく見てみよう

st.button にはいくつかの便利な引数(オプション)が用意されています。主なものだけを紹介します。詳しくはこちらの公式ドキュメントをご覧ください。st.button – Streamlit Docs

引数名説明
labelボタンに表示する文字列(省略時は必須の第1引数)
keyボタンに一意の識別子を与える
helpホバー時に表示されるツールチップ
type"primary" または "secondary":ボタンの見た目を変える

✅ サンプルコード:引数を活用する

Python
import streamlit as st

st.button(
    label="送信",
    key="submit_btn",
    help="送信ボタンです",
    type="primary"
)

6. よくあるエラーと対処法

現象原因対処法
ボタンを押しても何も起こらないif 文の処理が正しく書かれていないインデントやブロックを確認
カウントがリセットされてしまうセッションステートを使っていないst.session_state で状態を保持
複数のボタンを使ったときに動作が競合するkey が同じになっている各ボタンに異なる key を設定

7. まとめ

Streamlit を使ったインタラクティブなアプリの第一歩として、st.button の使い方をぜひマスターしてみてください!

8. 参考リンク

最後に書籍のPRです。
24年9月に出版された「ハイパーモダンPython-信頼性の高いワークフローを構築するモダンテクニック」、Claudio Jolowicz著、嶋田、鈴木訳。開発環境の構築、プロジェクトの管理、テストに関して実践的な内容でとても参考になる一冊です。ぜひ手に取ってみてください。

最後まで読んでいただきありがとうございます。

モバイルバージョンを終了