Maison > Article > développement back-end > golang fyne gui ne peut pas redimensionner la liste
J'essaie de redimensionner cette (liste) car elle n'affiche qu'une seule ligne et la seconde où je la vois, elle doit faire défiler vers le bas, je veux afficher plusieurs lignes, voici le code :-
"fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/widget" type CustomList struct { Header fyne.CanvasObject List *widget.List } a := app.New() // Create a new window w := a.NewWindow("Resources Manager") // Create a list with five columns list = widget.NewList( func() int { return len(clientInfos) }, func() fyne.CanvasObject { return container.NewHBox(widget.NewIcon(nil), widget.NewLabel("")) }, func(index int, obj fyne.CanvasObject) { c := obj.(*fyne.Container) icon := c.Objects[0].(*widget.Icon) label := c.Objects[1].(*widget.Label) // load the image resource img, err := fyne.LoadResourceFromPath(clientInfos[index].Country) if err != nil { fmt.Println("Failed to load image", err) return } // set image to icon and text to label icon.SetResource(img) label.SetText(fmt.Sprintf("%s | %s | %s | %s | %s", clientInfos[index].AppName, clientInfos[index].Version, clientInfos[index].kerenl, clientInfos[index].Price, clientInfos[index].Size, )) label.TextStyle = fyne.TextStyle{Bold: true, Italic: false, Monospace: true} }, ) list.OnSelected = func(id int) { selectedID = id } customList := &CustomList{ Header: widget.NewLabel("Icon | AppName | kerenl | Price | Size | Status"), List: list, } customList.List.Resize(fyne.Size{Height: 434}) // Create a container for the buttons buttonContainer := container.NewVBox() buttonContainer.Add(widget.NewButton("Install", func() { // Handle button click })) buttonContainer.Add(widget.NewButton("download", func() { // Handle button click })) buttonContainer.Add(widget.NewButton("Upgrade", func() { // Handle button click })) buttonContainer.Add(widget.NewButton("Refresh", func() { list.Refresh() // Handle button click })) buttonContainer.Resize(fyne.NewSize(230, 300)) vbox := container.NewVBox( customList.Header, customList.List, ) vbox.Resize(fyne.NewSize(600, 320)) horizontalSplit := container.NewHSplit(vbox, buttonContainer) horizontalSplit.SetOffset(0.8) content := container.NewVBox(horizontalSplit, textArea) w.SetContent(content) w.Resize(fyne.NewSize(800, 270)) w.ShowAndRun()
Existe-t-il d'autres bibliothèques Golang pour l'interface graphique ? Parce qu’il semble que la plupart d’entre eux sont obsolètes, n’est-ce pas ? Cependant, j'ai vraiment besoin de quelque chose de plus simple pour créer une interface graphique comme
En réalité, les widgets sont placés dans un conteneur, et ce conteneur a généralement une mise en page. Si vous configurez cela, votre appel manuel à Resize
sera remplacé par la mise en page sélectionnée.
L'utilisation de VBox fait exactement cela, car son algorithme veut garder chaque élément aussi court que possible.
Utilisez plutôt des bordures, avec le titre en haut et la liste occupant l'espace restant.
Les objets dans Fyne remplissent toujours l'espace qui leur est alloué, mais pour lui faire faire ce que vous voulez, il est important de choisir le bon conteneur/mise en page. https://www.php.cn/link/4d6ce445727ef59cc07abb95d3e4a1d4
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!