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)内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复