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()
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
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!