undefined: gtk.WindowFromObject

问题原因

1、go-gtk版本与glade版本不一致

2、go-gtk默认是2.0版本,没有WindowFromObject方法

解决办法:

首先,先将gtk.WindowFromObject修改为gtk.WidgetFromObject

其次,查看gtk版本,将glade设计好的xml文件,修改为与go-gtk版本一致,即可使用

最后,在运行程序

glade设计如下:

代码如下:

package main

import (
	"os"

	"github.com/mattn/go-gtk/gtk"
)

func main() {
	gtk.Init(&os.Args)

	builder := gtk.NewBuilder()       //新建builder
	builder.AddFromFile("test.glade") //读取glade文件
	// 获取窗口控件指针,注意"window1"要和glade里的标志名称匹配
	window := gtk.WidgetFromObject(builder.GetObject("window1"))
	//按窗口关闭按钮,自动触发"destroy"信号
	window.Connect("destroy", gtk.MainQuit)

	window.ShowAll()

	gtk.Main()
}

运行结果:

 

安装go-gtk地址:

https://github.com/mattn/go-gtk

安装glade

#linux 安装Glade
sudo apt-get install glade libglade2-dev
#运行
glade

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鼎上西瓜刀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值