Creare una TUI in Go con PTerm

Mattepuffo's logo
Creare una TUI in Go con PTerm

Creare una TUI in Go con PTerm

PTerm è una libreria per Go che ci consente di creare una TUI.

In questo articolo vediamo qualche esempio.

Intanto per usare la libreria:

go get github.com/pterm/pterm

Qui sotto qualche esempio di testo:

package main

import (
	"github.com/pterm/pterm"
	"github.com/pterm/pterm/putils"
)

func main() {
	header := pterm.DefaultHeader.WithBackgroundStyle(pterm.NewStyle(pterm.BgRed))
	pterm.DefaultCenter.Println(header.Sprint("TITOLO"))

	pterm.DefaultBigText.WithLetters(putils.LettersFromString("TESTO GRANDE")).Render()
	pterm.DefaultBasicText.Println("TESTO BASICO")
	pterm.DefaultBasicText.Println(pterm.Green("TESTO BASICO VERDE"))
	pterm.DefaultCenter.Println("TESTO CENTATO")

	pterm.DefaultBulletList.WithItems([]pterm.BulletListItem{
		{Level: 0, Text: "Blue", TextStyle: pterm.NewStyle(pterm.FgBlue), BulletStyle: pterm.NewStyle(pterm.FgRed)},
		{Level: 1, Text: "Green", TextStyle: pterm.NewStyle(pterm.FgGreen), Bullet: "-", BulletStyle: pterm.NewStyle(pterm.FgLightWhite)},
		{Level: 2, Text: "Cyan", TextStyle: pterm.NewStyle(pterm.FgCyan), Bullet: ">", BulletStyle: pterm.NewStyle(pterm.FgYellow)},
	}).Render()

	pterm.DefaultBox.
		WithRightPadding(5).
		WithLeftPadding(5).
		WithTopPadding(1).
		WithBottomPadding(1).
		Println("QUETO È UN BOX")
}

Ci sono poi parecchi altri componenti; qui sotto un esempio di spinner:

package main

import (
	"time"

	"github.com/pterm/pterm"
)

func main() {
	spinner, _ := pterm.DefaultSpinner.Start("Loading...")
	time.Sleep(time.Second * 5)
	spinner.Success()
}

Vi rimando alla docs per tutti gli altri componenti!

Enjoy!


Condividi

Commentami!