为 Windows 设置 GTK
注意:这些说明旨在为希望基于 GTK 创建 Windows 应用程序的开发人员提供,而不是为最终用户。在 Windows 上,GTK 应用程序通常已经捆绑了 GTK,因此最终用户无需担心如何安装 GTK 本身。
有多种方法可以在 Windows 开发机器上安装 GTK。
MSYS2
此方法基于 MSYS2 提供的软件包,该软件包为 Windows 提供了一个类似 UNIX 的环境。这两个存储库还为大量其他有用的开源库提供了软件包。
gvsbuild
此方法提供了从源代码构建 GTK 堆栈的脚本,并输出可供 Visual Studio 或基于 Meson 的项目使用的库和工具。
我们假设您使用的是 Windows 7 或更高版本。对于旧版本的 Windows,您需要自定义构建旧版本的 GLib 和 GTK。
使用 MSYS2 软件包中的 GTK
安装
MSYS2 项目为 Windows 提供了一个类似 UNIX 的开发环境。它为许多软件应用程序和库提供了软件包,包括 GTK 堆栈。如果您喜欢使用 Visual Studio 进行开发,则应改用 gvsbuild。
在 MSYS2 中,使用 pacman 软件包管理器安装软件包。
注意:在以下步骤中,我们将假设您使用的是
64 位 Windows
。因此,软件包名称包含 x86_64 架构标识符。如果您使用的是 32 位 Windows,请使用 i686 架构标识符调整以下说明。
步骤 1.:下载与您的平台匹配的 MSYS2 安装程序,并按照安装说明进行操作。
步骤 2.:安装 GTK4 及其依赖项。打开 MSYS2 shell,然后运行
pacman -S mingw-w64-ucrt-x86_64-gtk4
如果您想使用 GTK3 进行开发,请运行
pacman -S mingw-w64-ucrt-x86_64-gtk3
步骤 3. (可选):如果您想使用 C、C++、Fortran 等语言开发 GTK 应用程序,您需要像 GCC 这样的编译器及其工具链
pacman -S mingw-w64-ucrt-x86_64-toolchain base-devel
如果您想使用 Python 开发 GTK 应用程序,则需要安装 Python 绑定
pacman -S mingw-w64-ucrt-x86_64-python-gobject
如果您想使用 Vala 开发 GTK 应用程序,则需要安装 Vala 软件包
pacman -S mingw-w64-ucrt-x86_64-vala
构建和分发您的应用程序
如上所述安装 GTK 后,您应该可以轻松编译 GTK 应用程序。为了成功运行它,您还需要一个 GTK 主题。GTK 中有一些对 Windows 主题的旧的内置支持,但这会使您的应用程序看起来像一个 Windows 7 应用程序。最好获取一个 Windows 10 主题,例如 Windows 10 Transformation Pack。
步骤 1. 将 Windows 10 Transformation Pack 存储库中的图标资源复制到您的安装文件夹下的一个文件夹中,即 share/themes/Windows10
下
- 对于 GTK4 资源,请复制
share/themes/Windows10/gtk-4.0
下的gtk-4.0
文件夹的内容 - 对于 GTK3 资源,请复制
share/themes/WIndows10/gtk-3.0
下的gtk-3.20
文件夹的内容
步骤 2. 您还需要复制 Adwaita 主题中的图标,您可以从 GNOME 资源下载。
步骤 3. 对 hicolor
图标执行相同的步骤,这是 Adwaita 中不可用的图标的强制性后备图标。
步骤 4. 为了使 GTK 选择此主题,请在您的安装文件夹中的 etc
文件夹下放置一个文件 settings.ini
- 对于 GTK4,使用
etc/gtk-4.0/settings.ini
- 对于 GTK3,使用
etc/gtk-3.0/settings.ini
settings.ini
文件应包含
[Settings]
gtk-theme-name=Windows10
gtk-font-name=Segoe UI 9
步骤 5. 为了完成所有操作,请运行 GLib 提供的 glib-compile-schemas
实用程序,以在您的安装文件夹中生成已编译的设置模式
glib-compile-schemas share/glib-2.0/schemas
步骤 6. 然后,您可以将您的安装文件夹压缩起来,或者使用安装程序生成器来为您执行此操作,并分发结果。
您可以使用 MSYS2 来 构建您的 GTK 应用程序并创建一个安装程序来分发它。您的安装程序将需要运送您的应用程序构建工件以及 GTK 二进制文件和运行时依赖项。
关于使用您的应用程序分发 GTK 的法律说明
欢迎您在其他网站、CD-ROM 和其他媒体上重新分发 GTK 二进制文件,包括捆绑它们的应用程序。您无需请求许可。这是自由软件的要点之一。
GNU 许可证要求的一个重要事项是,您还必须在请求时重新分发源代码。这通常至少意味着 gettext、GLib、GTK、Pango 和 ATK 的源代码。