import streamlit as st # 1.18.1
button_text = "foo", "bar", "baz"
for text, col in zip(button_text, st.columns(len(button_text))):
if col.button(text):
col.write(f"{text} clicked")
字符串 如果文本不一定是唯一的:
button_text = "foo", "bar", "foo"
pairs = zip(button_text, st.columns(len(button_text)))
for i, (text, col) in enumerate(pairs):
if col.button(text, key=f"{text}-{i}"):
col.write(f"{text}-{i} clicked")
4条答案
按热度按时间w3nuxt5m1#
很明显这个应该可以了
字符串
8ehkhllq2#
如果你像我一样,它可能会困扰你,列等间距,使布局没有视觉吸引力,因为按钮看起来相距甚远。
经过大量的CSS挖掘,我发现了一个非常简单的方法,不需要安装任何其他库。可以(至少对于当前版本的streamlit)应用以下CSS使列仅与按钮一样宽。我在文件的顶部包含了这个:
字符串
然后(对于我的用例):
型
pobjuy323#
我有一个类似的问题-添加一个动作按钮到一个表。我来到了以下方法:
字符串
它工作得很好。对象-
user_table
-是一个与DataFrame非常相似的字典,其中每个键-是一个列(即Python术语中的list
)。下面是它的样子(注意“阻塞”-这是操作的结果):x1c 0d1xryoqjall4#
对this answer进行了一点泛化,以使用动态数量的按钮:
字符串
如果文本不一定是唯一的:
型