mirror of
https://github.com/slint-ui/slint.git
synced 2025-11-18 19:22:18 +00:00
62 lines
3.9 KiB
Markdown
62 lines
3.9 KiB
Markdown
# Slint's 7GUIs implementation
|
|
|
|
[7GUIs](https://eugenkiss.github.io/7guis/) is a "GUI Programming Benchmark".
|
|
However rather than benchmarking performance, it offers 7 GUI related tasks that aim to make UI Toolkits comparable.
|
|
|
|
These 7 challenges have implementations for multiple frameworks already and the following are ours:
|
|
|
|
## [Counter](https://eugenkiss.github.io/7guis/tasks#counter)
|
|
Just a Button that increases a value in a text field.
|
|
|
|

|
|
|
|
[`.slint` code in web editor](https://slint-ui.com/editor/?load_url=https://raw.githubusercontent.com/slint-ui/slint/master/examples/7guis/counter.slint)
|
|
|
|
## [Temperature Converter](https://eugenkiss.github.io/7guis/tasks/#temp)
|
|
Converts Celsius to Fahrenheit and vice versa.
|
|
|
|

|
|
|
|
[`.slint` code in web editor](https://slint-ui.com/editor/?load_url=https://raw.githubusercontent.com/slint-ui/slint/master/examples/7guis/tempconv.slint)
|
|
|
|
## [Flight Booker](https://eugenkiss.github.io/7guis/tasks/#flight)
|
|
Performs some validation checking on dates.
|
|
Does not actually book flights.
|
|
|
|

|
|
|
|
[`.slint` code in web editor](https://slint-ui.com/editor/?load_url=https://raw.githubusercontent.com/slint-ui/slint/master/examples/7guis/booker.slint)
|
|
(Note that the logic for date validation and date comparison is implemented in [Rust](./booker.rs).)
|
|
|
|
## [Timer](https://eugenkiss.github.io/7guis/tasks/#timer)
|
|
A simple timer where the duration is adjustable while running.
|
|
|
|

|
|
|
|
[`.slint` code in web editor](https://slint-ui.com/editor/?load_url=https://raw.githubusercontent.com/slint-ui/slint/master/examples/7guis/timer.slint)
|
|
(Note that the actual timer functionality is implemented in [Rust](./timer.rs).)
|
|
|
|
## [CRUD](https://eugenkiss.github.io/7guis/tasks/#crud)
|
|
Lets you create, read, update and delete names from a list as well as filter them by prefix.
|
|
Our implementation makes use of `MapModel` and `FilterModel` to achieve this.
|
|
|
|

|
|
|
|
[`.slint` code in web editor](https://slint-ui.com/editor/?load_url=https://raw.githubusercontent.com/slint-ui/slint/master/examples/7guis/crud.slint)
|
|
(Note that the changes to the data model and filtering is implemented in [Rust](./crud.rs).)
|
|
|
|
## [Circle Drawer](https://eugenkiss.github.io/7guis/tasks/#circle)
|
|
Draw some circles on a canvas and change their sizes. It has undo and redo capabilities.
|
|
|
|

|
|
|
|
[`.slint` code in web editor](https://slint-ui.com/editor/?load_url=https://raw.githubusercontent.com/slint-ui/slint/master/examples/7guis/circledraw.slint)
|
|
(Note that the undo-redo stack is implemented in [Rust](./circledraw.rs).)
|
|
|
|
## [Cells](https://eugenkiss.github.io/7guis/tasks/#cells)
|
|
Almost MS Excel. It uses nested models to create the table.
|
|
|
|

|
|
|
|
[`.slint` code in web editor](https://slint-ui.com/editor/?load_url=https://raw.githubusercontent.com/slint-ui/slint/master/examples/7guis/cells.slint)
|
|
(Note that the cell model, expression evaluation and dependency handling is implemented in [Rust](./cells.rs).)
|