添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接


glade设计如下:

Go版GTK:常用控件—对话框_默认按钮

示例代码:

package main

import (
"fmt"
"os"

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

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

builder := gtk.NewBuilder() //新建builder
builder.AddFromFile("test.glade") //读取glade文件

// 获取相应控件
window := gtk.WindowFromObject(builder.GetObject("window1"))
button1 := gtk.ButtonFromObject(builder.GetObject("button1"))
button2 := gtk.ButtonFromObject(builder.GetObject("button2"))

//信号处理
button1.Connect("clicked", func() {
//新建消息对话框,选择对话框
dialog := gtk.NewMessageDialog(
button1.GetTopLevelAsWindow(), //指定父窗口
gtk.DIALOG_MODAL, //模态对话框
gtk.MESSAGE_QUESTION, //指定对话框类型
gtk.BUTTONS_YES_NO, //默认按钮
"Are u ok?") //设置内容

dialog.SetTitle("问题对话框") //对话框设置标题

flag := dialog.Run() //运行对话框
if flag == gtk.RESPONSE_YES {
fmt.Println("按下yes")
} else if flag == gtk.RESPONSE_NO {
fmt.Println("按下no")
} else {
fmt.Println("按下关闭按钮")
}

dialog.Destroy() //销毁对话框
})

button2.Connect("clicked", func() {
dialog := gtk.NewMessageDialog(
window, //指定父窗口
gtk.DIALOG_MODAL, //模态对话框
gtk.MESSAGE_INFO, //info类型
gtk.BUTTONS_OK, //默认按钮
"结束了") //设置内容

dialog.Run() //运行对话框
dialog.Destroy() //销毁对话框
})

window.Connect("destroy", gtk.MainQuit) //关闭窗口

window.ShowAll()

gtk.Main()
}

程序运行效果:

Go版GTK:常用控件—对话框_go_02