go - 如何使GtkModelButton发出点击信号而不是GAction?

标签 go gtk gtk3

我试图像在Nautilus中那样在GtkPopover中创建一个按钮,而Nautilus为此使用GtkModelButton。问题是GtkModelButton强制使用GAction API,我认为这很丑陋,我更喜欢使用回调。

我已经尝试过使用GtkButton,但它看起来与GtkModelButton完全不同。

我的问题是,如何使GtkModelButton与mb.Connect("clicked", ...)一起使用?如果这不起作用,那么如何使GtkButton看起来像GtkModelButton呢? button.SetRelief(None)并没有真正完成这项工作。

型号按钮

enter image description here

ModelButton vs Relief(无)按钮

enter image description here

最佳答案

看来这比我想象的要容易。我要做的就是将处理程序连接到button-release-event!

btn, _ := gtk.ModelButtonNew()
btn.SetLabel("Click Me!")
btn.Connect("button-release-event", func() bool {
    log.Println("Button pressed.")
    return true
})

关于go - 如何使GtkModelButton发出点击信号而不是GAction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60680089/

相关文章:

c - GTK+-3.0-dev 编译时没有这样的文件或目录 (Linux Mint/gcc)

戈朗 : How do you use a pointer on a struct that hasn't been initialized yet

go - 如何使用结构指针转换 []byte?

go - 在自定义 UnmarshalXML 函数中正确使用 XML 注释、字段和结构

python - 无法在 GTK 中垂直打包按钮

treeview - Gtk.TreeView 无法添加自定义渲染器,断言 'gtk_cell_area_has_renderer (area, renderer)' 失败

c - 如何使用 `enum` 类型设置小部件属性,如 `GtkAttachOptions` ?我正在尝试模拟 `gtk_widget_set_vexpand` 以在 `gtk2` 上工作

go - 制作两个结构,它们与一种方法实现不同

Python Gtk3 在textview中设置文本

linux - 如何使用 GTK、python 和 glade 制作单窗口程序?