原文地址:https://blog.csdn.net/tennysonsky/article/details/79226914
1 示例代码
package main
import (
"os"
"github.com/mattn/go-gtk/gtk"
)
func main() {
gtk.Init(&os.Args) //环境初始化
window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL) //创建窗口
window.SetPosition(gtk.WIN_POS_CENTER) //设置窗口居中显示
window.SetTitle("GTK Go!") //设置标题
window.SetSizeRequest(300, 200) //设置窗口的宽度和高度
window.Show() //显示窗口
gtk.Main() //主事件循环,等待用户操作
}
程序运行结果:
2 代码框架
我们以后写GTK代码时基本上都看到这么一个框架:
package main
import (
"os"
"github.com/mattn/go-gtk/gtk" //导入gtk所需的包
)
func main() {
gtk.Init(&os.Args) //环境初始化
//…… ……
// 用户所写的代码
//…… ……
gtk.Main() //主事件循环,等待用户操作
}
3 代码分析
1)gtk.Init(&os.Args)
所有 GTK应用程序都要调用该函数,而且必须在控件定义之前使用,它为我们设置一些缺省值( 例如视觉和颜色 )映射这个函数将函数库初始化,设置缺省的信号处理函数,并检查通过命令行传递给应用程序的参数,自动完成一些必要的初始化工作。
2)gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
创建一个窗口并返回这个窗口的控件指针。gtk.WINDOW_TOPLEVEL指明窗口的类型为最上层的主窗口(则带边框的窗口),它最常用。
3)window.Show()
用来显示上一步创建的窗口控件。
在这个简单例子里,所有事件都被忽略。用鼠标点击窗口右上角的“×”按钮也不能将窗口关闭。可通过任务管理器关闭。
4)gtk.Main()
它是在每个Gtk应用程序都要调用的函数。程序运行停在这里等待事件(如键盘事件或鼠标事件)的发生,等待用户来操作窗口。