GTK3
GTK3 notes
Published: Mar 9, 2025

Add CSS class to widgets

1func GtkWidgetAddClass(widget *gtk.Widget, class string) {
2	context, err := widget.GetStyleContext()
3	if err != nil {
4		log.Fatal(err)
5	}
6	context.AddClass(class)
7}

Apply styles from a CSS file

For CSS syntax: GTK3 CSS overview

1mRefProvider, _  := gtk.CssProviderNew()
2mRefProvider.LoadFromPath("style.css")
3
4// Apply to whole app
5screen, _ := gdk.ScreenGetDefault()
6gtk.AddProviderForScreen(screen, mRefProvider, 999)

Kill application when out of focus

1win, _ := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
2
3...
4
5win.SetEvents(int(gdk.FOCUS_CHANGE_MASK))
6win.Connect("focus-out-event", func() { gtk.MainQuit() })

Make window transparent

1win.SetAppPaintable(true)
2win.SetDecorated(false)
3
4screen, _ := gdk.ScreenGetDefault()
5visual, _ := screen.GetRGBAVisual()
6
7if visual != nil && screen.IsComposited() {
8    win.SetVisual(visual)
9}

← Go to parent