gtk 订阅
GTK+(GIMP Toolkit)是一套源码以LGPL许可协议分发、跨平台的图形工具包。最初是为GIMP写的,已成为一个功能强大、设计灵活的一个通用图形库,是GNU/Linux下开发图形界面的应用程序的主流开发工具之一。并且,GTK+也有Windows版本和Mac OS X版。 展开全文
GTK+(GIMP Toolkit)是一套源码以LGPL许可协议分发、跨平台的图形工具包。最初是为GIMP写的,已成为一个功能强大、设计灵活的一个通用图形库,是GNU/Linux下开发图形界面的应用程序的主流开发工具之一。并且,GTK+也有Windows版本和Mac OS X版。
信息
特    点
功能强大、设计灵活
开    发
GNU/Linux
中文名
gtk
定    义
跨平台的图形工具包
gtk详细说明
GTK+ 是一种图形用户界面(GUI)工具包。也就是说,它是一个库(或者,实际上是若干个密切相关的库的集合),它支持创建基于 GUI 的应用程序。可以把 GTK+ 想像成一个工具包,从这个工具包中可以找到用来创建 GUI 的许多已经准备好的构造块。最初,GTK+ 是作为另一个著名的开放源码项目 —— GNU Image Manipulation Program (GIMP) —— 的副产品而创建的。在开发早期的 GIMP 版本时,Peter Mattis 和 Spencer Kimball 创建了 GTK(它代表 GIMP Toolkit),作为 Motif 工具包的替代,后者在那个时候不是免费的。(当这个工具包获得了面向对象特性和可扩展性之后,才在名称后面加上了一个加号。)这差不多已经 10 年过去了。今天,在 GTK+ 的最新稳定版本 —— 2.8 版上(3.0测试中),仍然在进行许多活动,同时,GIMP 无疑仍然是使用 GTK+ 的最著名的程序之一,不过它已经不是惟一的使用 GTK+ 的程序了。已经为 GTK+ 编写了成百上千的应用程序,而且至少有两个主要的桌面环境(Xfce 和 GNOME)用 GTK+ 为用户提供完整的工作环境。GTK+虽然是用C语言写的,但是您可以使用你熟悉的语言来使用GTK+,因为GTK+已经被绑定到几乎所有流行的语言上,如:C++,PHP, Guile,Perl, Python, TOM, Ada95, Objective C, Free Pascal, and Eiffel。
收起全文
精华内容
参与话题
问答
  • Go语言图形界面开发:GoGTK

    万次阅读 热门讨论 2018-02-08 21:17:27
  • Go语言编程

    万人学习 2014-11-29 10:20:02
    Go 的前世今生与 Go 语言编程的基础教学,以及七牛云存储应用 Go 的实践分享。
  • GoGTK:环境搭建(windows)

    万次阅读 热门讨论 2018-01-31 19:58:54
    1 下载安装msys2 MSYS2 (Minimal SYStem 2) 是一个MSYS的独立改写版本,主要用于 shell 命令行开发环境。同时它也是一个在Cygwin (POSIX 兼容性层) 和 MinGW-w64(从”MinGW-生成”)基础上产生的,追求更好的...

    ##1 下载安装msys2
    MSYS2 (Minimal SYStem 2) 是一个MSYS的独立改写版本,主要用于 shell 命令行开发环境。同时它也是一个在Cygwin (POSIX 兼容性层) 和 MinGW-w64(从"MinGW-生成")基础上产生的,追求更好的互操作性的 Windows 软件。

    官方网址:http://www.msys2.org/
    这里写图片描述

    百度云下载地址:https://pan.baidu.com/s/1kWOBbBD

    默认配置安装即可:
    这里写图片描述

    这里写图片描述

    运行msys2:
    这里写图片描述

    #2 安装所需软件

    注意:在msys2命令行下安装。

    1) 安装gtk3

    pacman -S mingw-w64-x86_64-gtk3
    

    这里写图片描述

    输入**“y”**确定安装:
    这里写图片描述

    这里写图片描述

    2) 安装gtk2

    pacman -S mingw-w64-x86_64-gtk2
    

    这里写图片描述

    3) 安装glade

    pacman -S mingw-w64-x86_64-glade
    

    这里写图片描述

    4) 安装帮助文档

    pacman -S mingw-w64-x86_64-devhelp
    

    这里写图片描述

    5) 安装MinGW

    pacman -S mingw-w64-x86_64-toolchain base-devel
    

    这里写图片描述

    这里写图片描述

    #3 配置环境变量

    C:\msys64\usr\bin
    C:\msys64\mingw64\bin
    

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    测试是否成功:

    pkg-config --cflags gtk+-2.0
    make -v
    

    这里写图片描述

    这里写图片描述

    #4 编译运行demo
    go源码下载地址:https://pan.baidu.com/s/1kWOBbBD

    注意:一定要下载这里的源码,后面的教程中,我修改了部分源码。
    注意:一定要下载这里的源码,后面的教程中,我修改了部分源码。
    注意:一定要下载这里的源码,后面的教程中,我修改了部分源码。
    注意:一定要下载这里的源码,后面的教程中,我修改了部分源码。
    注意:一定要下载这里的源码,后面的教程中,我修改了部分源码。
    注意:一定要下载这里的源码,后面的教程中,我修改了部分源码。

    ##4.1 配置GOPATH
    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    ##4.2 运行官方自带example
    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    参考资料

    1、https://github.com/mattn/go-gtk

    20180210174507305
    展开全文
  • GoGTK:glade

    万次阅读 2018-02-04 23:57:03
    1 glade简介 ... 2 glade安装 ...go源码使用的是gtk2版本,默认安装的glade关联的为gtk3.0以上的版本,需要单独安装一个合适版本的glade。 详情请参考:http://blog.csdn.net/tennysonsky/article/deta...

    1 glade简介

    请参考:http://blog.csdn.net/tennysonsky/article/details/43016035

    2 glade安装

    go源码使用的是gtk2版本,默认安装的glade关联的为gtk3.0以上的版本,需要单独安装一个合适版本的glade。

    详情请参考:http://blog.csdn.net/tennysonsky/article/details/43018759

    3 glade的使用

    3.1 设计器介绍和操作步骤

    详情请参考:http://blog.csdn.net/tennysonsky/article/details/43019923

    3.2 示例程序

    示例代码:

    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文件
    
        // 获取窗口控件指针,注意"window1"要和glade里的标志名称匹配
        window := gtk.WindowFromObject(builder.GetObject("window1"))
        b1 := gtk.ButtonFromObject(builder.GetObject("button_previous")) //获取按钮1
        b2 := gtk.ButtonFromObject(builder.GetObject("button_next"))     //获取按钮2
    
        //信号处理
        b1.Connect("clicked", func() {
            //获取按钮内容
            fmt.Println("button txt = ", b1.GetLabel())
        })
    
        b2.Connect("clicked", func() {
            //获取按钮内容
            fmt.Println("button txt = ", b2.GetLabel())
            gtk.MainQuit() //关闭窗口
        })
    
        //按窗口关闭按钮,自动触发"destroy"信号
        window.Connect("destroy", gtk.MainQuit)
    
        window.ShowAll()
    
        gtk.Main()
    }

    程序运行效果:
    这里写图片描述

    20180210174507305

    展开全文
  • GoGTK:控件

    万次阅读 2018-02-02 10:55:14
    1 控件简介 控件是对数据和方法的封装。...GTK中控件主要分为两类:容器控件,非容器控件。 容器控件:它可以容纳别的控件,我们可以理解为盒子,盒子拿来装东西。容器控件又分为两类,一类只能容纳一个控件,如...

    1 控件简介

    控件是对数据和方法的封装。控件有自己的属性和方法。属性是指控件的特征。方法是指控件的一些简单而可见的功能。如按钮就是一个控件,这个按钮是方形的,里面有张图片,这是我们能看到外观属性,同时,这个按钮具备被人按下的功能。

    GTK中控件主要分为两类:容器控件,非容器控件。

    • 容器控件:它可以容纳别的控件,我们可以理解为盒子,盒子拿来装东西。容器控件又分为两类,一类只能容纳一个控件,如窗口,按钮;另一类能容纳多个控件,如布局控件。
    • 非容器控件:它不可以容纳别的控件,如标签、行编辑。

    2 控件的使用

    2.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)              //设置窗口的宽度和高度
    
        //--------------------------------------------------------
        // GtkFixed
        //--------------------------------------------------------
        layout := gtk.NewFixed() //创建固定布局
    
        //--------------------------------------------------------
        // GtkButton
        //--------------------------------------------------------
        b1 := gtk.NewButton() //新建按钮
        b1.SetLabel("^_@")    //设置内容
        //b1.SetSizeRequest(100, 50) //设置按钮大小
    
        b2 := gtk.NewButtonWithLabel("@_~") //新建按钮,同时设置内容
        b2.SetSizeRequest(100, 50)          //设置按钮大小
    
        //--------------------------------------------------------
        // 添加布局、添加容器
        //--------------------------------------------------------
        window.Add(layout) //把布局添加到主窗口中
    
        layout.Put(b1, 0, 0)    //设置按钮在容器的位置
        layout.Move(b1, 50, 50) //移动按钮的位置,必须先put,再用move
    
        layout.Put(b2, 50, 100)
    
        window.ShowAll() //显示所有的控件
    
        gtk.Main() //主事件循环,等待用户操作
    }
    

    程序运行效果:
    这里写图片描述

    2.2 代码分析

    1) Put

    func (v *Fixed) Put(w IWidget, x, y int)
    功能:固定布局容器添加控件
    参数:
        widget:要添加的控件
        x, y:控件摆放位置的起点坐标

    这里写图片描述

    2) ShowAll

    func (v *Widget) ShowAll()
    功能:显示所有的控件,如果窗口放入一个容器,这时,容器上的所有控件也会跟着显示。

    20180210174507305

    展开全文
  • GoGTK:定时器

    千次阅读 2018-02-06 23:29:52
    定时器在应用编程里用得很广,我们手机里的闹钟,幻灯片播放图片等应用都用到定时器。...github.com/mattn/go-gtk/glib" func TimeoutAdd(interval uint, f interface{}, datas ...interfac...
  • GoGTK:信号处理

    万次阅读 2018-02-03 21:02:42
    前面我们学习的GTK界面都是静态的,我们按下按钮它是没有响应的,如何让它有响应呢?接下来我们一起学习GTK的信号处理。 GTK采用了信号与回调函数来处理窗口外部传来的事件、消息或信号。当信号发生时,程序自动...
  • go编译go-gtk

    千次阅读 2018-06-07 09:36:38
    使用go编译go-gtk,直接编译会出现错误:pkg-config --cflags -- gdk-2.0 gthread-2.0 pkg-config --libs -- gdk-2.0 gthread-2.0 go build github.com/mattn/go-gtk/gdk: invalid flag in pkg-config --libs: -Wl,-...
  • GoGTK:常用控件—进度条

    万次阅读 2018-02-06 11:15:35
    我们到处都能看到进度条的应用,我们下载拷贝个文件,下载个电影等总能看到进度条的影子,如图: ...github.com/mattn/go-gtk/gtk" ) func main() { gtk.Init(&os.Args) builder := gtk...
  • GoGTK:常用控件—窗口

    万次阅读 2018-02-05 01:42:55
    常用信号: 信号标识 触发条件 “destroy” 按关闭窗口按钮时触发 示例代码: ...github.com/mattn/go-gtk/gtk" ) func main() { gtk.Init(&os.Args) builder := gtk.Ne...
  • GoGTK:常用控件—按钮

    万次阅读 2018-02-06 12:19:09
    按钮在GUI里应用最为广泛,我们几乎能在所有的界面中看到按钮。 glade设计如下: 按钮的常用信号: 信号标识 触发条件 “clicked” 按下按钮时触发 “pressed” 按下按钮时触发 ... ...
  • go编译go-gtk报错

    千次阅读 2018-08-12 11:20:51
    go build github.com/mattn/go-gtk/gio: invalid flag in pkg-config --libs: -Wl,-luuid go build github.com/mattn/go-gtk/gdk: invalid flag in pkg-config --libs: -Wl,-lu 解决方法 进入:C:\ms...
  • 找不到导入go-gtk

    2011-09-10 06:37:35
    I tried using goinstall to install github.com/mattn/go-gtk/gtk but when I try to compile an example I'm getting: <pre><code>can't find import: github.com/mattn/go-gtk/gtk </code></pre> <p>I've ...
  • go编译go-gtk 报错

    2019-05-17 14:28:00
    使用go编译go-gtk,直接编译会出现错误: pkg-config --cflags -- gdk-2.0 gthread-2.0 pkg-config --libs -- gdk-2.0 gthread-2.0 打开C:\msys64\mingw64\lib\pkgconfig\gdk-2.0.pc 将原本在Libs中的-Wl删除,...
  • GoGTK:常用控件—标签

    万次阅读 2018-02-05 01:45:01
    标签主要是显示文本信息,用作标志: 示例代码: package main ...github.com/mattn/go-gtk/gtk" ) func main() { gtk.Init(&amp;os.Args) builder := gtk.NewBuilder() //新建buil...
  • GoGTK:常用控件—对话框

    千次阅读 2018-02-07 13:05:49
    glade设计如下: 示例代码: package main import ( ...github.com/mattn/go-gtk/gtk" ) func main() { gtk.Init(&amp;os.Args) builder := gtk.NewBuilder() //新建builder b...
  • GoGTK:一个简单的空白窗口

    万次阅读 2018-02-01 13:12:28
    1 示例代码 package main ...github.com/mattn/go-gtk/gtk" ) func main() { gtk.Init(&amp;os.Args) //环境初始化 window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL) //创建窗口 window.SetP...
  • GoGTK:常用控件—布局

    千次阅读 2018-02-06 20:30:10
    1 水平布局 glade设计如下: 示例代码: package main ...github.com/mattn/go-gtk/gtk" ) func main() { gtk.Init(&amp;os.Args) builder := gtk.NewBuilder() //新建builder ...
  • GoGTK:常用控件—图片控件

    万次阅读 2018-02-05 18:04:37
    图片控件和标签的作用很类似,都是作为显示用的,只是图片控件显示的内容是图片。 示例代码: package main ...github....github.com/mattn/go-gtk/gtk" ) func main() { gtk.Init(...
  • GoGTK:常用事件—绘图事件

    千次阅读 2018-02-08 17:04:59
    GTK界面只要有图片的地方,其底层实际上是通过绘图实现的。绘图实际上也是事件的一种,GTK中,绘图事件也叫曝光事件。绘图的操作需要放在事件回调函数里。 1 绘图触发条件 绘图时所触发的信号:expose-event。...
  • GoGTK:常用事件—键盘事件

    千次阅读 2018-02-08 11:40:22
    事件标识: 事件标识 触发条件 “key-press-event” 键盘按下时触发 “key-release-event” 键盘抬起时触发 示例代码: package main ...github.com/mattn/go-gtk/gdk" "g...
  • GoGTK:常用事件—鼠标事件

    千次阅读 2018-02-07 18:40:50
    鼠标事件,可以理解为操作鼠标的动作。对于窗口而言,用户操作鼠标,窗口检测到鼠标的操作( 产生一个信号 ),然后去做相应处理( 调用其规定的回调函数 ),即为鼠标事件。 窗口默认不捕获鼠标的操作,需要手动添加让...
  • GoGTK:常用控件—行编辑

    千次阅读 2018-02-06 17:45:08
    行编辑,只允许输入一行内容的控件,如密码输入框。 glade设计如下: 常用信号: 信号标识 触发条件 “activate” 行编辑区内部按回车键时触发 ...github.com/mattn/go-gtk/gtk" ) func main...
  • GoGTK:鼠标事件应用—窗口移动

    千次阅读 2018-02-07 20:57:03
    创建窗口时,如果指定类型为弹出类型,即为无边框窗口,这时候,无法通过边框移动窗口,这时可以借助鼠标点击、移动事件实现窗口的移动。 ...github.com/mattn/go-gtk/gdk" "github...
  • GoGTK:常用事件—大小改变事件

    千次阅读 2018-02-08 20:19:23
    当窗口初始化,被移动或拉伸时,会触发大小改变事件。 事件标识: 事件标识 触发条件 “configure_event” 窗口大小改变时触发 ...github.com/mattn/go-gtk/gtk" ) func main() { gtk...

空空如也

1 2 3 4 5 ... 20
收藏数 307,265
精华内容 122,906
关键字:

gtk