gpt4 book ai didi

go - 控制GTK小部件大小

转载 作者:行者123 更新时间:2023-12-01 22:25:23 24 4
gpt4 key购买 nike

我想拥有一个GTK应用程序,该应用程序在第一次迭代时应该有一个长长的列表,一个隐藏的小部件和一个底线。所有这些都应垂直放置。

到目前为止,我尝试使用expand方法执行此操作,但是它似乎没有任何效果:

package main

import (
"log"

"github.com/gotk3/gotk3/glib"
"github.com/gotk3/gotk3/gtk"
)

func main() {
// Initialize GTK without parsing any command line arguments.
gtk.Init(nil)

// Create a new toplevel window, set its title, and connect it to the
// "destroy" signal to exit the GTK main loop when it is destroyed.
win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
if err != nil {
log.Fatal("Unable to create window:", err)
}
win.SetDecorated(false)
win.SetTitle("Simple Example")
win.Connect("destroy", func() {
gtk.MainQuit()
})

// Create a new label widget to show in the window.
l, err := gtk.LabelNew("Hello, gotk3!")
if err != nil {
log.Fatal("Unable to create label:", err)
}

ls, err := gtk.ListStoreNew(glib.TYPE_STRING, glib.TYPE_STRING)
if err != nil {
log.Fatal("Unable to create list:", err)
}

tv, err := gtk.TreeViewNewWithModel(ls)
if err != nil {
panic(err)
}

lb, err := gtk.ListBoxNew()
if err != nil {
panic(err)
}

fr, err := gtk.ListBoxRowNew()
if err != nil {
panic(err)
}

sr, err := gtk.ListBoxRowNew()
if err != nil {
panic(err)
}

tr, err := gtk.ListBoxRowNew()
if err != nil {
panic(err)
}

fr.Add(tv)
tr.Add(l)

fr.SetVExpand(true)
tr.SetVExpand(false)
lb.Add(fr)
lb.Add(sr)
lb.Add(tr)

lb.SetVExpand(true)

// Add the label to the window.
win.Add(lb)

// Set the default window size.
win.SetDefaultSize(800, 600)

// Recursively show all widgets contained in this window.
win.ShowAll()

// Begin executing the GTK main loop. This blocks until
// gtk.MainQuit() is run.
gtk.Main()
}

所以我的问题是,关于GTK如何进行布局以及如何使所需的布局起作用,是否有全面的文章。

最佳答案

看来ListBox是不可能的。切换到Box并按预期工作。

关于go - 控制GTK小部件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60210881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com