go-gtk3开发之空白窗口(3)

go-gtk3开发之空白窗口

gtk3 之缘

没有人一上来就什么都会的,至少我达不到。本人由于学习go,又看到了gtk相关的开发,于是开始了gtk开发之旅,奈何gtk的版本或者案例有点老,或者我的环境比较高(个人喜欢最新的环境),导致一直无法编译成功,各种报错。
于是各种爬文,看到了一份gtk的教程(很详细的系列),但是始终无法成功,于是就看向了gtk3,但是奈何网上的相关的内容实在不多,于是根据大佬的gtk文档翻译了一份gtk3的系列案例。
当然在翻译的过程中还是存在各种bug,欢迎大家来指正。

引用

GTK传送门:https://www.cnblogs.com/tennysonsky/p/8433888.html

案例说明

开发一个空白窗口。

demo.go

package main

import (
	"github.com/gotk3/gotk3/glib"
	"github.com/gotk3/gotk3/gtk"
	"log"
	"os"
)

func main() {
	// 接受两个参数一个是 应用标识,其一般使用你域名的倒序形式;
	//另一个是GApplicationFlags,其为了满足你对应用的特定需求。
	//通常就像实例代码一样写glib.APPLICATION_FLAGS_NONE就可以了。
	const appId = "com.nayoso.example"
	// 每个gtk3程序都需要一步
	app, err := gtk.ApplicationNew(appId, glib.APPLICATION_FLAGS_NONE)

	if err != nil {
		log.Fatal("Could not create application.", err)
	}

	//为activate事件绑定函数, activate会在程序启动时触发,也就是app.Run()时
	// 创建窗口
	_, err = app.Connect("activate", func() {
		createWindow(app)
	})
	if err != nil {
		log.Fatal(err)
	}

	app.Run(os.Args) //运行gtkApplication
}

func createWindow(application *gtk.Application) {
	appWindow, err := gtk.ApplicationWindowNew(application) //创建window控件

	if err != nil {
		log.Fatal("Could not create application window.", err)
	}
	//设置窗口属性
	appWindow.SetTitle("Basic Application.")
	appWindow.SetDefaultSize(400, 400)
	//显示窗口
	appWindow.Show()
}
发布了94 篇原创文章 · 获赞 52 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/weixin_43968923/article/details/105000503
今日推荐