golang fyne gui tidak boleh mengubah saiz senarai

PHPz
Lepaskan: 2024-02-05 23:45:03
ke hadapan
874 orang telah melayarinya

golang fyne gui 无法调整列表大小

Kandungan soalan

Saya cuba mengubah saiz ini (senarai) kerana ia hanya memaparkan satu baris dan yang kedua saya nampak ia perlu tatal ke bawah Saya mahu memaparkan berbilang baris, berikut adalah kodnya:-

"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()
Salin selepas log masuk

Adakah perpustakaan Golang lain untuk gui? Sebab nampaknya kebanyakannya sudah ketinggalan zaman kan? Walau bagaimanapun, saya benar-benar memerlukan sesuatu yang lebih mudah untuk membina GUI seperti


Jawapan Betul


In fyne, widget dimasukkan ke dalam bekas, dan bekas itu biasanya mempunyai reka letak. Jika anda menyediakannya, panggilan manual anda ke Resize akan ditindih oleh reka letak yang dipilih. Penggunaan VBox melakukan perkara ini, kerana algoritmanya mahu memastikan setiap item sesingkat mungkin. Gunakan sempadan sebaliknya, dengan tajuk di bahagian atas dan senarai mengambil ruang yang tinggal.

Objek dalam Fyne sentiasa memenuhi ruang yang diperuntukkan kepada mereka, tetapi untuk menjadikannya melakukan apa yang anda mahu, adalah penting untuk memilih bekas/susun atur yang betul. https://www.php.cn/link/4d6ce445727ef59cc07abb95d3e4a1d4

Atas ialah kandungan terperinci golang fyne gui tidak boleh mengubah saiz senarai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
lsp
sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan