当前位置: 首页 > 软件库 > 程序开发 > GUI开发框架 >

gotk3

GTK+3 的 Go 绑定
授权协议 ISC 自由许可证
开发语言 Google Go
所属分类 程序开发、 GUI开发框架
软件类型 开源软件
地区 不详
投 递 者 茅高卓
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

gotk3 提供 Go 绑定 GTK+3 和依赖的其他项目。每个组件都给出了用来导入包路径的子目录。以下是部分已经实施的支持库:

  • GTK+3 (3.6 and later)

  • GDK 3 (3.6 and later)

  • GLib 2 (2.36 and later)

  • Cairo (1.10 and later)

已经采取谨慎的内存管理与Go的垃圾收集器无缝工作,而无需使用或理解图形对象的浮动参考。

简单示例:

package main
import (
    "github.com/conformal/gotk3/gtk"
    "log"
)
func main() {
    // Initialize GTK without parsing any command line arguments.
    gtk.Init(nil)
    // Create a new toplevel window, set its title, and connect it to the
    // "destroy" signal to exit the GTK main loop when it is destroyed.
    win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
    if err != nil {
        log.Fatal("Unable to create window:", err)
    }
    win.SetTitle("Simple Example")
    win.Connect("destroy", func() {
        gtk.MainQuit()
    })
    // Create a new label widget to show in the window.
    l, err := gtk.LabelNew("Hello, gotk3!")
    if err != nil {
        log.Fatal("Unable to create label:", err)
    }
    // Add the label to the window.
    win.Add(l)
    // Set the default window size.
    win.SetDefaultSize(800, 600)
    // Recursively show all widgets contained in this window.
    win.ShowAll()
    // Begin executing the GTK main loop.  This blocks until
    // gtk.MainQuit() is run. 
    gtk.Main()
}
  • 记录初次使用go gtk3 制作gui时遇到的天坑问题(废弃函数被包含在了第三方库中) gotk3是go 语言的第三方库,用于绑定go语言和gtk3,今天尝试使用了一下。 这篇博客记录我初次使用时遇到的编译问题以及解决方法 新版本的glib2(2.68.1.1及以上版本)的接口与gotk3库的函数不兼容的问题 F:\Golang_study\src\github.com\gotk3\gotk3\_

  • 环境:win10 Home;  go1.11.2 windows/amd64 步骤(https://github.com/gotk3/gotk3/wiki/Installing-on-Windows): 1. Git 略 2. MinGW 这个有些‘坑’,按作者提的sourceforge上的mingwbuilds和mingw-w64都试了都不行。最后参考这里: https://github.com

  • 开发环境 系统:windows10 go版本:1.14 msys2版本:20190524(最新x64) Git:2.25 go开发工具:goland-2019.3.1 gtk: gtk3 MSYS2 MSYS2介绍 MSYS2 (Minimal SYStem 2) 是一个MSYS的独立改写版本,主要用于 shell 命令行开发环境。同时它也是一个在Cygwin (POSIX 兼容性层) 和 Min

  • 案例说明 窗口大小改变后输出对应的窗口大小。 demo.go package main import ( "fmt" "github.com/gotk3/gotk3/glib" "github.com/gotk3/gotk3/gtk" //"github.com/mattn/go-gtk/gtk" //"github.com/mattn/go-gtk/glib" "log" "os

  • 案例说明 添加行编辑控件,设置行编辑属性(密码不可见,不可编辑,灰色不可编辑),获取内容以及绑定事件,激活行控件后,获取内容。 demo.go package main import ( "fmt" "github.com/gotk3/gotk3/glib" "github.com/gotk3/gotk3/gtk" "log" "os" "reflect" ) func main(

  • 案例说明 创建按钮,绑定事件,点击按钮后弹出对话框。 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, _

 相关资料
  • 本文向大家介绍JQuery调用绑定click事件的3种写法,包括了JQuery调用绑定click事件的3种写法的使用技巧和注意事项,需要的朋友参考一下 第一种方式:  第二种方式: 第三种方式: 注意:第三种方式只适用于jquery 1.7以上的版本 源码如下:

  • 本文向大家介绍KnockoutJS 3.X API 第四章之click绑定,包括了KnockoutJS 3.X API 第四章之click绑定的使用技巧和注意事项,需要的朋友参考一下 目的 click绑定主要作用是用于DOM元素被点击时调用相关JS函数。最常见用于button、input、a元素。 例如: 源码: 如上述例子,没点过button被点击时都会触发incrementClickCount

  • 我正在尝试创建一个3个月向前看类型表。因此,例如,任何(即Jan-2021)的事件在2021年2月和2021年3月也是有效的。 对于每一个事件,我想在发生后的2个月内再排一次。以下示例: 给定如下所示的数据: 我想创建一些看起来像这样的东西: 有点纠结于如何实现这一点。您可以假设在这里是有效的datetime字段。我试过几种不同的方法都没有用。对于类似的情况,我通常使用窗口函数,这里有和限制,但和

  • 以前是关于programmers.stackExchange.com的,但显然不是该论坛的主题。 我发现有人在这里抱怨这个问题:https://blog.jetbrains.com/idea/2016/08/intellij-idea-2016-2-3-update-is-out/ 我不能Ctrl+C或Alt+3,所以键绑定是混乱的。 在Jetbrains做补丁之前有什么想法/临时修复/解决方案吗

  • 本文向大家介绍KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定,包括了KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定的使用技巧和注意事项,需要的朋友参考一下 if绑定目的 if绑定一般是格式是data-bind=if:attribute,if后所跟属性或表达式的值应为bool值(也可以是非bool值,当非空字符串时则为真),if绑定

  • 本文向大家介绍KnockoutJS 3.X API 第四章之表单value绑定,包括了KnockoutJS 3.X API 第四章之表单value绑定的使用技巧和注意事项,需要的朋友参考一下 Knockout是一个以数据模型(data model)为基础的能够帮助你创建富文本,响应显示和编辑用户界面的JavaScript类库。任何时候如果你的UI需要自动更新(比如:更新依赖于用户的行为或者外部数据

  • 本文向大家介绍KnockoutJS 3.X API 第四章之事件event绑定,包括了KnockoutJS 3.X API 第四章之事件event绑定的使用技巧和注意事项,需要的朋友参考一下 目的 event绑定即为事件绑定,即当触发相关DOM事件的时候回调函数。例如keypress,mouseover或者mouseout等 例如: Mouse over me 源码: 如上述例子,当鼠标指针移入或

  • 我在Spring中面临一个动态列表绑定的问题。我正在尝试创建一个“添加联系人”页面,该页面基本上如下所示: 当“添加电话”按钮被点击,我希望另一个“电话类型”和“电话号码”按钮出现在下面,以便用户可以输入多个电话号码。这就是我面临问题的地方。 下面是我的代码: 以上表单上的Javascript: 我在这里尝试做的是,当单击“Add Phone”按钮时,我向服务器发出一个AJAX请求,其中包含要插入