L'éditeur php Xiaoxin vous présente le paramètre de couleur de bordure gocui dans GoLang. gocui est une puissante bibliothèque de langage Go permettant de créer des applications interactives avec des interfaces de ligne de commande. Dans gocui, vous pouvez augmenter la beauté et la lisibilité de l'interface en définissant la couleur de la bordure. Avec de simples modifications de code, vous pouvez ajouter des couleurs personnalisées aux bordures de l'interface pour rendre votre application plus attrayante. Ensuite, apprenons comment utiliser la bibliothèque gocui dans GoLang pour définir la couleur de la bordure !
Il y a un problème avec le robot à intelligence artificielle, alors je demande ici :
J'ai ce code, il n'affiche que deux fenêtres et au lieu de background, je veux que la border soit verte.
J'ai essayé :
g.highlight = true
Chaque document ne fonctionne toujours pas.
Voici mon code complet :
package main import ( // "fmt" "log" "github.com/jroimartin/gocui" ) func main() { // Create a new gocui view g, err := gocui.NewGui(gocui.OutputNormal) if err != nil { log.Panicln(err) } defer g.Close() g.SetManagerFunc(layout) if err := g.SetKeybinding("", 'q', gocui.ModNone, quit); err != nil { log.Panicln(err) } if err := g.SetKeybinding("", '1', gocui.ModNone, view1); err != nil { log.Panicln(err) } if err := g.SetKeybinding("", '2', gocui.ModNone, view2); err != nil { log.Panicln(err) } if err := g.MainLoop(); err != nil && err != gocui.ErrQuit { log.Panicln(err) } } func updateView(g *gocui.Gui, v *gocui.View) error { // Check if the view is active if v != nil && v == g.CurrentView() { // If the view is active, set its background color to yellow v.BgColor = gocui.ColorYellow } else { // If the view is not active, set its background color to default (nothing) v.BgColor = gocui.ColorDefault } return nil } func layout(g *gocui.Gui) error { // maxX, maxY := g.Size() g.Highlight = true // Create a new view with the name "myView" if v, err := g.SetView("view1", 0, 0, 20, 10); err != nil { if err != gocui.ErrUnknownView { log.Panicln(err) } // Set the default background color of the view to nothing v.BgColor = gocui.ColorDefault v.Title = "View 1" v.Wrap = false // fmt.Fprintln(v, "View 1") } // Set a second view with the name "myOtherView" if v, err := g.SetView("view2", 25, 0, 45, 10); err != nil { if err != gocui.ErrUnknownView { log.Panicln(err) } // Set the default background color of the view to nothing v.BgColor = gocui.ColorDefault v.Title = "View 2" v.Wrap = false // fmt.Fprintln(v, "View 2") } return nil } func view1(g *gocui.Gui, v *gocui.View) error { if _, err := g.SetCurrentView("view1"); err != nil { return err } updateHighlighting(g, v) return nil } func view2(g *gocui.Gui, v *gocui.View) error { if _, err := g.SetCurrentView("view2"); err != nil { return err } updateHighlighting(g, v) return nil } func updateHighlighting(g *gocui.Gui, v *gocui.View) error { current := g.CurrentView() for _, view := range g.Views() { if view == current { current.BgColor = gocui.ColorGreen } else { view.BgColor = gocui.ColorDefault } } return nil } func quit(g *gocui.Gui, v *gocui.View) error { return gocui.ErrQuit }
view
的框架由呈现该框架的 gui
处理。您已将 gui
的突出显示设置为 true,但未设置 selbgcolor
或 selfgcolor
.
De https://pkg.go.dev/github.com/ jroimartin/gocui#gui :
// selbgcolor and selfgcolor allow to configure the background and // foreground colors of the frame of the current view. selbgcolor, selfgcolor attribute // if highlight is true, sel{bg,fg}colors will be used to draw the // frame of the current view. highlight bool
Ajoutez g.selfgcolor = gocui.colorgreen
en modifiant le début de la mise en page comme suit :
func layout(g *gocui.Gui) error { // maxX, maxY := g.Size() g.Highlight = true g.SelFgColor = gocui.ColorGreen ... ...
Vous obtiendrez alors une bordure verte sur fond noir :
Si vous ne souhaitez pas que l'arrière-plan devienne également vert, supprimez cette ligne :
current.bgcolor = gocui.colorgreen
C'est un peu déroutant au début car la propriété view
和 gui
都有 selfgcolor
selbgcolor
和 highlight
,但是 view
contrôle le texte sélectionné dans la vue, pas les bordures de la vue actuelle dans l'interface graphique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!