-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Roman Shirokov edited this page Aug 7, 2026
·
15 revisions
Легковесный фреймворк для удобной разработки TUI-интерфейсов на Go с поддержкой мыши, готовыми виджетами и автоматической системой фокуса без зависимостей. Идеально подходит для дашбордов, консольных утилит и интерактивных CLI-приложений.
package main
import (
"strconv"
"github.com/romanSPB15/tui-compose/v3"
)
func main() {
wnd := tui.NewWindow()
wnd.SetTitle("Моё приложение")
label := tui.NewStaticLabel("Привет, TUI!").WithStyle(tui.FrCyan)
btnQuit := tui.NewButton("Выход", func() {
wnd.Quit()
})
v := 0
btnAdd := tui.NewButton("+", func() {
v++
label.SetText(strconv.Itoa(v))
}).WithStyle(tui.BgRed)
btnSub := tui.NewButton("-", func() {
if v > 0 {
v--
label.SetText(strconv.Itoa(v))
}
}).WithStyle(tui.BgBlue)
box := tui.NewVBox(label, tui.NewHBox(btnAdd, btnSub), btnQuit)
wnd.SetContent(box)
wnd.Run()
}Разбор кода:
- Устанавливает окну терминала заголовок «Моё приложение»;
- Создаёт текстовую метку и 3 кнопки;
- Собирает UI из VBox и HBox;
- Запускает приложение.
Для навигации можно использовать Tab/Shift+Tab. На кнопки можно нажать мышью.
Посмотреть другие примеры можно здесь.