使用 vcpkg 安装的 GTK3 的主题和图标问题

Theme and Icons Problem with GTK3 Installed with vcpkg

我在 Windows 10 上使用 Visual Studio 2019,我正在尝试在 C++ 中使用 GTK 并使用 vcpkg 安装它。

我已经根据 guide from GTK. I'm using Visual Studio 2019 and it is able to compile and run the example program here 使用 vcpkg 安装了 GTK,但是在主题和图标方面存在问题。根据安装指南,在 构建和分发您的应用程序 部分下,必须完成一些操作才能使主题和图标正常工作。

我首先下载了指南建议的 Windows 主题并将其放在 share 目录中,然后我在 etc 中创建了一个 settings.ini 文件=] 目录。它说将它放在 "install directory" 中,我假设这是 Visual Studio 放置程序 exe 的地方。我已经在构建和发布中,在源文件中,在顶级项目目录中尝试过它 - 都没有成功(而且我确实确保它是针对 x64)。

以防万一,我也尝试将它们放置在安装 vcpkg 的位置以及 vcpkg 安装 gtk 的位置。没有运气。当程序运行时,我收到警告

(gtkExample0.exe:16772): Gtk-WARNING **: Could not find the icon 'window-minimize-symbolic-ltr'. The 'hicolor' theme
was not found either, perhaps you need to install it.
You can get a copy from:
        http://icon-theme.freedesktop.org/releases

所以它似乎永远找不到告诉它使用 Windows 10 主题的 ssettings.ini 文件。有没有人有幸让它工作(从 VS2019 调试运行和部署)?


总结文件:

share\themes\Windows10\gtk-3.0\gtk-3.20\(从建议的 GitHub 存储库下载)

etc\settings.ini 包含:

[Settings]
gtk-theme-name=Windows10
gtk-font-name=Segoe UI 9

我把这些放在了

<VS2019Project>\x64\Release,

<VS2019Project>\x64\Debug,

C:<path_to_vcpkg>\vcpkg\packages\gtk_x64-windows,

C:<path_to_vcpkg>\vcpkg\installed\x64-windows

在 Release 或 Debug 下从 VS2019 运行 时全部没有变化。

被视为外部资源的主题和图标未由 vcpkg 分发,GTK 分发指南中关于这些资源应在 windows 10 上布局的位置的说明并不 crystal 明确.该问题也已在此处报告 vcpkg issue#4417

下面建议的解决方案是安装 您的 .exe 应用程序所在的 VS 项目的 <VS2019Project>\x64\Release 目录中的所有资源 [这是问题的本地解决方案。全局方法应该考虑一些用户定义的自由桌面环境变量的设置,这里没有讨论]。可以从辅助 MSYS2 发行版和 GTK Guide 中指示的主题中挑选图标。应该为 Debug 分支复制该解决方案。

  1. 假设您有 MSYS2,请使用 pacman 包管理器安装 mingw-w64-x86_64-adwaita-icon-theme 包(如果您的 MSYS2 安装尚未完成)pacman -Syu mingw-w64-x86_64-adwaita-icon-theme

  2. 复制C:\msys64\mingw64\share\icons<VS2019Project>\x64\Release\share\icons 您应该将 hicolorAdwaita 图标都作为目标目录的子目录。

  3. 将源gtk-3.20目录下下载的主题资源直接复制到<VS2019Project>\x64\Release\share\themes\Windows10\gtk-3.0\中。不要将这些资源放在 gtk-3.20 子文件夹中:要了解为什么请参阅这篇文章 Theme Location [假设这里没有设置全局桌面环境变量]。

  4. 创建一个<VS2019Project>\x64\Release\etc\gtk-3.0目录,把你的settings.ini放进去

  5. 重新编译,您的应用程序应该获得 windows 10 的外观和感觉 window.