为 Windows 设置 GTK

GTK and Windows

注意:这些说明旨在为希望基于 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 二进制文件和运行时依赖项。

欢迎您在其他网站、CD-ROM 和其他媒体上重新分发 GTK 二进制文件,包括捆绑它们的应用程序。您无需请求许可。这是自由软件的要点之一。

GNU 许可证要求的一个重要事项是,您还必须在请求时重新分发源代码。这通常至少意味着 gettext、GLib、GTK、Pango 和 ATK 的源代码。

发现错别字或缺少信息,请编辑此页面
阅读关于如何为本网站做贡献