egui-selectable-table
A library for egui to create tables with draggable cell and row selection.
Features
- Individual cell or full-row selection while dragging
- Auto vertical table scrolling during drag with adjustable parameters
- Sort rows by clicking headers, both ascending and descending
- Customizable rows and header UI
- Built-in select all (Ctrl+A) and copy (Ctrl+C) functionality
- Capable of handling a substantial amount of rows (1M+) with proper settings
- Optional fuzzy matching for searching rows (see below)
Optional Features
This crate includes an optional fuzzy-matching feature that enables fuzzy row search using the nucleo-matcher crate.
To enable fuzzy matching:
[]
= { = "0.4.0", = ["fuzzy-matching"] }
Usage
// See Demo folder for a complete example
use ;
// other use imports
// Implement both traits for row and column
Run Demo
The demo is accessible online via this link
-
Clone the repository
git clone https://github.com/TheRustyPickle/egui-selectable-table -
Move into the demo folder
cd egui-selectable-table/demo- To run natively
cargo run --release
or
- To run in wasm locally install the required target with
rustup target add wasm32-unknown-unknown - Install Trunk with
cargo install --locked trunk trunk serveto run and visithttp://127.0.0.1:8080/
- To run natively
Contributing
Contributions, issues, and feature requests are welcome! If you'd like to contribute, please open a pull request.
License
This project is licensed under the MIT License.