Maison > développement back-end > Golang > le corps du texte

golang fyne gui ne peut pas redimensionner la liste

PHPz
Libérer: 2024-02-05 23:45:03
avant
874 Les gens l'ont consulté

golang fyne gui 无法调整列表大小

Contenu de la question

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()
Copier après la connexion

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


Correct Answer


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!

Étiquettes associées:
lsp
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal