rsj0315 发表于 2023-10-9 21:43:03

streamlit 下拉框的文本和选项框放在一行上显示

streamlit 下拉框的文本和选项框放在一行上显示,是否可以?如何设置

isdkz 发表于 2023-10-9 21:43:34

可以将下拉框的文本和选项框放在一行上显示,可以使用streamlit.beta_columns()函数将页面分成多列,然后将下拉框放在需要的列中。

以下是示例代码:

import streamlit as st

# 使用 beta_columns 将页面分成两列
col1, col2 = st.beta_columns(2)

# 在第一列中添加文本
with col1:
    st.write("下拉框:")

# 在第二列中添加下拉框
with col2:
    option = st.selectbox("", ["选项1", "选项2", "选项3"])

# 隐藏下拉框的文本
st.markdown("<style>div.row-widget.stRadio > div{flex-direction:row;}</style>", unsafe_allow_html=True)


在上述代码中,我们将页面分成两列,将下拉框放在第二列中,并使用 CSS 隐藏了下拉框的文本。这样,下拉框的文本和选项框就可以在一行上显示了。

rsj0315 发表于 2023-10-9 21:45:50

@isdkz 看看效果

rsj0315 发表于 2023-10-9 21:50:47

def selectbox(
      self,
      label: str,
      options: OptionSequence,
      index: int = 0,
      format_func: Callable[, Any] = str,
      key: Optional = None,
      help: Optional = None,
      on_change: Optional = None,
      args: Optional = None,
      kwargs: Optional = None,
      *,# keyword-only arguments:
      disabled: bool = False,
      label_visibility: LabelVisibility = "visible",
    ) -> Optional:
      r"""Display a select widget.

      Parameters
      ----------
      label : str
            A short label explaining to the user what this select widget is for.
            The label can optionally contain Markdown and supports the following
            elements: Bold, Italics, Strikethroughs, Inline Code, Emojis, and Links.

            This also supports:

            * Emoji shortcodes, such as ``:+1:``and ``:sunglasses:``.
            For a list of all supported codes,
            see https://share.streamlit.io/streamlit/emoji-shortcodes.

            * LaTeX expressions, by wrapping them in "$" or "$$" (the "$$"
            must be on their own lines). Supported LaTeX functions are listed
            at https://katex.org/docs/supported.html.

            * Colored text, using the syntax ``:color``,
            where ``color`` needs to be replaced with any of the following
            supported colors: blue, green, orange, red, violet.

            Unsupported elements are unwrapped so only their children (text contents) render.
            Display unsupported elements as literal characters by
            backslash-escaping them. E.g. ``1\. Not an ordered list``.

            For accessibility reasons, you should never set an empty label (label="")
            but hide it with label_visibility if needed. In the future, we may disallow
            empty labels by raising an exception.
      options : Sequence, numpy.ndarray, pandas.Series, pandas.DataFrame, or pandas.Index
            Labels for the select options. This will be cast to str internally
            by default. For pandas.DataFrame, the first column is selected.
      index : int
            The index of the preselected option on first render.
      format_func : function
            Function to modify the display of the labels. It receives the option
            as an argument and its output will be cast to str.
      key : str or int
            An optional string or integer to use as the unique key for the widget.
            If this is omitted, a key will be generated for the widget
            based on its content. Multiple widgets of the same type may
            not share the same key.
      help : str
            An optional tooltip that gets displayed next to the selectbox.
      on_change : callable
            An optional callback invoked when this selectbox's value changes.
      args : tuple
            An optional tuple of args to pass to the callback.
      kwargs : dict
            An optional dict of kwargs to pass to the callback.
      disabled : bool
            An optional boolean, which disables the selectbox if set to True.
            The default is False. This argument can only be supplied by keyword.
      label_visibility : "visible" or "hidden" or "collapsed"
            The visibility of the label. If "hidden", the label doesn't show but there
            is still empty space for it above the widget (equivalent to label="").
            If "collapsed", both the label and the space are removed. Default is
            "visible". This argument can only be supplied by keyword.

还是得看源码啊,找到了用最后一个属性可以设置
页: [1]
查看完整版本: streamlit 下拉框的文本和选项框放在一行上显示