Streamlit Shortcuts allows you to easily add keyboard shortcuts to your Streamlit buttons.
pip install streamlit-shortcuts
import streamlit as st
import streamlit_shortcuts
def delete_callback():
st.write("DELETED!")
streamlit_shortcuts.button("delete", on_click=delete_callback, shortcut="Ctrl+Shift+X", hint=True)
⭐ New in v0.1.8: Shortcut hint by @quantum-ernest
⭐ NEW in v0.1.5: Support for args and kwargs
import streamlit as st
import streamlit_shortcuts
def delete_callback(item_id, user="anonymous"):
st.write(f"Item {item_id} DELETED by {user}!")
streamlit_shortcuts.button(
"Delete",
shortcut="Ctrl+Shift+X",
on_click=delete_callback,
hint=True,
args=(42,),
kwargs={"user": "admin"},
type="primary"
)
This creates a primary Streamlit button labeled "Delete" with the shortcut "Ctrl+Shift+X".
When clicked (or activated via shortcut), it calls delete_callback(42, user="admin")
.
🥱 Old
import streamlit as st
from streamlit_shortcuts import add_keyboard_shortcuts
def delete_callback():
st.write("DELETED!")
st.button("delete", on_click=delete_callback)
add_keyboard_shortcuts({
'Ctrl+Shift+X': 'delete',
})
The 'Ctrl+Shift+X' combination will trigger "Another Button".
Examples of Key Combinations:
For a complete list of key values, refer to: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values
We use semantic versioning. The current version is stored in the VERSION
file in the root of the repository.
Contributions are welcome! If you have suggestions for improvements or bug fixes, please follow these steps:
VERSION
file if your changes warrant a version bumpPlease make sure to update tests as appropriate and adhere to the existing coding style.
To release a new version:
VERSION
file with the new version numbergit commit -am "Bump version to X.Y.Z"
git tag vX.Y.Z
git push && git push --tags
The GitHub Actions workflow will automatically create a new release and publish to PyPI.
flow
of codeSolution inspired by:
Special thanks to @brunomsantiago and @TomJohnH for their initial work on this concept.
Wrapped and extended for easier usage by the Streamlit Shortcuts team.