我是靠谱客的博主 甜美短靴,这篇文章主要介绍go-gtk3开发之添加按钮(4),现在分享给大家,希望可以做个参考。

go-gtk3开发之添加按钮

    • 案例说明
    • demo.go

案例说明

创建水平布局,并在布局中添加按钮,按钮绑定事件,点击按钮后进行打印输出。

demo.go

package main

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

func main() {
	// 创建程序
	const appId = "com.nayoso.example"
	app, err := gtk.ApplicationNew(appId, glib.APPLICATION_FLAGS_NONE)
	if err != nil {
		log.Fatal("Could not create application.", err)
	}

	// 创建窗口
	_, err = app.Connect("activate", func() {
		createWindow(app)
	})
	if err != nil {
		log.Fatal(err)
	}

	// 事件循环
	app.Run(os.Args)
}

// 创建窗口
func createWindow(application *gtk.Application) {
	appWindow, err := gtk.ApplicationWindowNew(application)
	if err != nil {
		log.Fatal("Could not create application window.", err)
	}
	// 标题
	appWindow.SetTitle("Basic Application.")
	// 窗口大小
	appWindow.SetDefaultSize(400, 400)

	//以水平布局创建一个容器, 第二个参数是其中控件的像素间隔
	buttonBox, err := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 2)
	if err != nil {
		log.Fatal(err)
	}

	//将布局添加到window中
	appWindow.Add(buttonBox)

	// 设置布局大小
	buttonBox.SetSizeRequest(400, 400)

	//创建一个按钮
	button1, _ := gtk.ButtonNewWithLabel("^_^")
	button2, _ := gtk.ButtonNewWithLabel("@_@")

	//将按钮添加到box容器中
	buttonBox.Add(button1)
	buttonBox.Add(button2)

	// 设置按钮大小
	button1.SetSizeRequest(100, 100)
	button2.SetSizeRequest(100, 100)

	//让我们为按钮点击添加一个函数,每次点击都会在命令行输出Hello World
	_, err = button1.Connect("clicked", func() {
		fmt.Println("按钮1")

	})
	if err != nil {
		log.Fatal(err)
	}
	_, err = button2.Connect("clicked", func() {
		fmt.Println("按钮2")

	})
	if err != nil {
		log.Fatal(err)
	}

	// 按窗口的关闭按钮,触发:"destroy"
	//_, err = appWindow.Connect("destroy", func() {
	//	appWindow.Destroy() //摧毁窗口
	//})
	//if err != nil {
	//	log.Fatal(err)
	//}

	//与Show()不同在于,它会输出Window中的子控件。你可以修改,查看不同的效果
	appWindow.ShowAll()
}

最后

以上就是甜美短靴最近收集整理的关于go-gtk3开发之添加按钮(4)的全部内容,更多相关go-gtk3开发之添加按钮(4)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部