Is there a way to make a table of widgets?

Hello,
I would like to have a button that has the following functionality:
Each time I click it, it creates a pair of widgets, a selectbox and a button right next to each other, the button next to the selectbox is deleting the selectbox and itself when clicked.
I had an idea of making each of these pairs a 1 by 2 table of widgets so that the button and selectbox would appear next to each other and would not drift apart.
Before that I tried using columns and got the following problem:


Is there any way to make such a table?

You need to create two columns separately for each row. Here is a simple example.

import streamlit as st


def remove_row(row):
    st.session_state.rows.remove(row)


if "rows" not in st.session_state:
    st.session_state.rows = []

add_button = st.button(label="Add")
if add_button:
    next_row = max(st.session_state.rows) + 1 if st.session_state.rows else 1
    st.session_state.rows.append(next_row)

for row in st.session_state.rows:
    left, right = st.columns(2)
    left.selectbox(label=f"Test {row}", options="abcde")
    right.button(
        label="Remove", key=f"remove_{row}", on_click=remove_row, kwargs={"row": row}
    )

Thank you so much, it worked!
Is there any way to make the remove button work? It doesn’t work now.
Another problem I am facing is that whenever I click on remove or choose some option from the selectbox, the screen goes dark
Before I click something:


After clicking somthing inside this container:

An important mention is that the container of the upper buttons are not turning darker.

The Remove button works for me and I don’t see the screen going dark. But then your code seems to be different than mine so the behavior can also be different.

Ok thank you very much.