回答編集履歴

1

追記

2021/10/29 02:50

投稿

8524ba23
8524ba23

スコア38341

test CHANGED
@@ -2,4 +2,52 @@
2
2
 
3
3
  再実行時には、以前にどのボタンが押されたかは記憶していないため、期待した動作はできません。
4
4
 
5
- ただし[Streamlitの備忘録 状態の保持](https://zenn.dev/canard0328/articles/streamlit_how_to_use#%E7%8A%B6%E6%85%8B%E3%81%AE%E4%BF%9D%E6%8C%81)に記載されている`SessionState`を利用するとできるかもしれません。
5
+ ただし[Streamlitの備忘録 状態の保持](https://zenn.dev/canard0328/articles/streamlit_how_to_use#%E7%8A%B6%E6%85%8B%E3%81%AE%E4%BF%9D%E6%8C%81)に記載されている`session_state`を利用するとできるかもしれません。
6
+
7
+
8
+
9
+ 追記。Version 1.1.0でできました。
10
+
11
+ ```Python
12
+
13
+ import streamlit as st
14
+
15
+
16
+
17
+ i = 1
18
+
19
+ if 'i' in st.session_state:
20
+
21
+ i = st.session_state['i']
22
+
23
+
24
+
25
+ states = [
26
+
27
+ (f"{i}st button",f"{i}st button is pushed."),
28
+
29
+ (f"{i}nd button",f"{i}nd button is pushed."),
30
+
31
+ (f"{i}rd button","GOAL")
32
+
33
+ ]
34
+
35
+ title, mes = states[i-1]
36
+
37
+
38
+
39
+ f=st.button(title)
40
+
41
+ if f:
42
+
43
+ st.write(mes)
44
+
45
+ i += 1
46
+
47
+ if i > len(states):
48
+
49
+ i = 1
50
+
51
+ st.session_state['i'] = i
52
+
53
+ ```