gradioの部品まとめ
🎛️ はじめに
Gradioは、PythonでインタラクティブなWebアプリケーションを簡単に作成できるライブラリです。特にgr.Blocks()
を使った構成では、with
文の中にUIの「部品(コンポーネント)」を配置して、GUIを組み立てていきます。
この記事では、with gr.Blocks()
の中に書ける各種部品の種類・用途・主な引数を体系的にまとめます。
🧱 Gradioの「部品」とは?
Gradioの部品とは、ボタンやテキストボックス、画像、スライダーなどのUI要素のことです。gr.Button()
や gr.Textbox()
などが該当します。
Gradioの部品の分類
-
入力系(Input):ユーザーから情報を受け取る
-
出力系(Output):処理結果を表示する
-
構造系(Layout):部品の配置やグループ化
-
メディア系(Media):画像・音声・動画
-
高度UI系(Advanced):データテーブルやファイル管理など
📝 入力コンポーネント(Input Components)
🔤 gr.Textbox
-
用途:1行または複数行のテキスト入力
-
主な引数:
-
label
: ラベル文字列 -
lines
: 行数(デフォルト1) -
placeholder
: プレースホルダ -
value
: 初期値 -
interactive
: 編集可能にする
-
🔘 gr.Radio
-
用途:選択肢の中から1つを選択
-
主な引数:
-
choices
: 選択肢のリスト -
value
: 初期選択肢 -
label
: ラベル
-
✅ gr.Checkbox
-
用途:ON/OFFの切り替え
-
主な引数:
-
label
: 表示ラベル -
value
: 初期値(True/False)
-
📋 gr.CheckboxGroup
-
用途:複数選択できるチェックボックスのセット
-
主な引数:
-
choices
: 選択肢リスト -
value
: 初期選択リスト
-
🔽 gr.Dropdown
-
用途:選択肢の中から1つ(または複数)選ぶ
-
主な引数:
-
choices
,value
,label
,multiselect
-
🎚️ gr.Slider
/ gr.Number
-
用途:数値の入力(スライダーや直接入力)
-
主な引数:
-
minimum
,maximum
,step
,value
,label
-
🗃️ gr.File
-
用途:ファイルのアップロード
-
主な引数:
-
file_types
:['image', 'text', 'pdf']
など -
type
:'binary'
,'filepath'
-
label
-
📤 出力コンポーネント(Output Components)
📄 gr.Textbox
(出力にも使える)
-
interactive=False
にすることで出力専用にできる
🖼️ gr.Image
-
用途:画像の表示
-
主な引数:
-
type
:'numpy'
,'pil'
,'filepath'
-
label
-
width
,height
,show_label
-
📊 gr.Plot
-
用途:matplotlibやplotlyなどのグラフ表示
-
入力:figureオブジェクト
📈 gr.Dataframe
-
用途:表形式データの表示(入力兼出力も可能)
-
主な引数:
-
headers
,datatype
,value
,interactive
-
📦 メディア系コンポーネント
🔊 gr.Audio
-
音声ファイルの再生・録音・アップロード
-
type='filepath'
で音声出力としても使える
🎥 gr.Video
-
動画ファイルの表示
📐 レイアウト系コンポーネント(構造用)
📚 gr.Row
, gr.Column
-
用途:UI部品を横並び(Row)・縦並び(Column)にグループ化
with gr.Row():
gr.Textbox(label='A')
gr.Textbox(label='B')
🪟 gr.Accordion
-
折りたたみ可能なセクション
🧩 gr.Tab
, gr.TabItem
-
タブ切り替えUIの実装
🔧 高度な部品
📦 gr.Dataset
-
サンプルデータを選択するインターフェース
🧮 gr.JSON
-
JSON構造のデータ表示用
🖱️ イベントを扱う部品(アクション系)
🕹️ gr.Button
-
ボタンをクリックすることでイベント(
click
)を発火
btn = gr.Button("実行")
btn.click(fn=処理関数, inputs=[入力部品], outputs=[出力部品])
🔄 その他の便利コンポーネント
🔁 gr.State
-
セッションをまたいでデータを保持する隠れた入力/出力(非表示)
🏁 おわりに
GradioのBlocks
で使える部品は、GUI構築に必要な要素をほぼ網羅しています。ここで紹介した部品を適切に組み合わせることで、コードだけでリッチなWebアプリが作れるのがGradioの魅力です。
【情報】Gradioの部品はバージョンによって追加・変更されることがあります。常に最新版のドキュメント(https://www.gradio.app/docs/)を参考にするのがおすすめです。