go gtk 开发入门

环境:

Ubuntu 24.04

go 1.24

针对以下程序 hello.go

package main

import (

"github.com/gotk3/gotk3/gtk"

)

func main() {

// 初始化GTK

gtk.Init(nil)

// 创建主窗口

win, _ := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)

win.SetTitle("Hello Go GTK")

win.SetDefaultSize(400, 300)

win.Connect("destroy", func() {

gtk.MainQuit()

})

// 添加标签

label, _ := gtk.LabelNew("欢迎使用Go语言开发GTK界面!")

win.Add(label)

// 显示所有组件

win.ShowAll()

// 启动主事件循环

gtk.Main()

}

操作如下

$ export GOPROXY=https://goproxy.cn,direct

$ export CGO_ENABLED=1

$go mod init hello

$ go get github.com/gotk3/gotk3/gtk

go: added github.com/gotk3/gotk3 v0.6.4

$ go run hello.go

出现如下错误

../go/pkg/mod/github.com/gotk3/gotk3@v0.6.4/gdk/gdk_since_3_22.go:140:180: undefined: callback

怎样解决?

办法如下:

修改 go.mod 文件,将 gotk3 的版本改为 v0.6.3,然后运行

$ go mod tidy

$ go build hello.go

$ ./hello

相关推荐
姚不倒9 小时前
Go语言进阶:接口、错误处理与并发编程(goroutine/channel/context)
云原生·golang
宇明一不急16 小时前
go 链表 (标准库实现)
开发语言·链表·golang
~|Bernard|17 小时前
GO语言中哪些类型是可比较类型的(==和!=)
开发语言·后端·golang
比特森林探险记21 小时前
底层数据结构分析 go 语言中的 slice map channel interface
数据结构·golang·哈希算法
XMYX-021 小时前
35 - Go 文件操作:读写与临时文件
golang
姚不倒1 天前
Go语言实战:多态文件存储系统(接口、错误处理、panic/recover)
云原生·golang
Achou.Wang1 天前
Docker 多阶段构建:优化 Go 应用镜像大小的最佳实践
elasticsearch·docker·golang
XMYX-01 天前
34 - Go 二进制处理(编码/解码)深度解析
开发语言·golang
恣艺1 天前
用Go从零实现一个高性能KV存储引擎:B+Tree索引、WAL持久化、LRU缓存的工程实践
开发语言·数据库·redis·缓存·golang
geovindu1 天前
go: Semaphore Pattern
开发语言·后端·设计模式·golang·企业级信号量模式