Как сделать так, чтобы GtkModelButton испускал щелчковый сигнал вместо GAction? - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь сделать кнопку в GtkPopover, как в Nautilus, и Nautilus использует для этого GtkModelButton. Проблема в том, что GtkModelButton заставляет API-интерфейс GAction, который я считаю уродливым, и я предпочитаю использовать обратные вызовы.

Я пробовал использовать GtkButton, но он выглядит совершенно иначе, чем GtkModelButton.

У меня вопрос, как мне сделать так, чтобы GtkModelButton работал с mb.Connect("clicked", ...)? Если это не сработает, как насчет того, чтобы заставить GtkButton выглядеть как GtkModelButton? button.SetRelief(None) на самом деле не делал работу.


ModelButton

enter image description here


ModelButton vs Relief (Нет ) Кнопка

enter image description here

1 Ответ

0 голосов
/ 14 марта 2020

Кажется, это проще, чем я думал. Все, что мне нужно было сделать, это подключить обработчик к button-release-event!

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