GTK+的版本发布

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GTK+的版本发布相关的知识,希望对你有一定的参考价值。

参考技术A

主要版本发布日期主要增强最後次要版本1.01998年4月14日第一个稳定版本1.0.61.21999年2月27日新增部件(GtkFontSelector、GtkPacker、GtkItemFactory、GtkCTree、GtkInvisible、GtkCalendar、GtkLayout、GtkPlug、GtkSocket)1.2.102.02002年3月11日GObject, Unicode(UTF-8)支援2.0.92.22002年12月22日Multihead support2.2.42.42004年3月16日新增部件(GtkFileChooser、GtkComboBox、GtkComboBoxEntry、GtkExpander、GtkFontButton、GtkColorButton)2.4.142.62004年12月16日New widgets (GtkIconView, GtkAboutDialog, GtkCellView).  最後一个支援Windows 98/Me的版本2.6.102.82005年8月13日Cairo integration2.8.202.102006年7月3日新增部件(GtkStatusIcon、GtkAssistant、GtkLinkButton、GtkRecentChooser)以及列印支援(GtkPrintOperation)2.10.142.122007年9月14日GtkBuilder2.12.122.142008年9月4日Jpeg2000 load support2.14.72.162009年3月13日New GtkOrientable, Caps Lock warning in password Entry.  Improvement on GtkScale, GtkStatusIcon, GtkFileChooser.2.16.62.182009年9月23日New GtkInfoBar. Improvement on file chooser, printing.  GDK has been rewritten to use \'client-side windows\'2.18.92.202010年3月23日New GtkSpinner and GtkToolPalette, GtkOffscreenWindow. Improvement on file chooser,  keyboard handling, GDK.Introspection data is now included in GTK+2.20.12.222010年9月23日gdk-pixbuf moved to separate module, most GDK drawing are based on Cairo,  many internal data are now private and can be sealed in preparation to GTK+32.22.12.242011年1月30日New simple combo box widget (GtkComboBoxText) added, the cups print backend can send print jobs as PDF,  GtkBuilder has gained support for text tags and menu toolbuttons and many introspection annotation fixes were added2.24.03.02011年2月10日Cairo, more X11 agnostic, XInput2, CSS-based theme API3.0.0

为多个库版本构建 Go 绑定?

【中文标题】为多个库版本构建 Go 绑定?【英文标题】:Build Go bindings for multiple library versions? 【发布时间】:2015-03-06 14:49:54 【问题描述】:

我在尝试将pond 使用的go-gtk fork 中的GTK3 支持与基于GTK2 的上游go-gtk 合并时遇到了一个小的hiccup。

这些指定 GTK 版本的 cgo pkg-config 行必须 afaik 出现在每个文件中,这样可以防止 GTK 2 和 3 共有的绑定存在于一个公共文件中。

我想构建针对多个 GTK 版本编译文件的“惯用”技巧是:将公共代码放在 foo_common.go 文件中,这样它就永远不会构建。使用perlbash + sed 脚本从foo_common.go 构建foo2.gofoo3.go,方法是修复cgo pkg-config 行并为gtk2 标签添加go build 指令。

【问题讨论】:

【参考方案1】:

您可以使用build constrain aka 标签来实现。

首先您必须拆分使用 gtk2 和 gtk3 的文件,然后假设您希望 gtk3 成为默认值(如果您将 gtk2 设为默认值,我会皱眉):

gtk3.go:

// +build !gtk2

package main

import "fmt"

func main() 
    fmt.Println("gtk3")

gtk2.go:

// +build gtk2

package main

import "fmt"

func main() 
    fmt.Println("gtk2")

然后进行测试:

$ go build; and ./constrains
gtk3
$ go build -tags gtk2; and ./constrains
gtk2

【讨论】:

没有。构建标签是不够的,因为cgo pkg-config 行必须出现在 every 文件中。您可以将构建标签与 cpp 或 perl 等预处理器一起使用,就像我在问题中描述的那样。 是的,我当然同意 gtk3 是默认设置,不知道为什么有人甚至在这一点上费心构建对 gtk2 的支持,也许它的占用空间更小或其他什么。

以上是关于GTK+的版本发布的主要内容,如果未能解决你的问题,请参考以下文章

你如何知道 Ubuntu 上安装了哪个版本的 GTK+?

为多个库版本构建 Go 绑定?

是啥导致不同 GTK 版本之间 GtkIconView 的显示行为不同?

guake 3.4发布,支持切分窗口

我该如何解决这个错误? Gtk-WARNING **: GModule ...初始化检查失败:GLib 版本太旧(微不匹配)

使用Fedora8 iso开发环境开发gtk3跨Linux多版本桌面应用