vcpkg安装了GTK3的主题和图标问题

时间:2019-12-13 00:00:18

标签: c++ visual-studio gtk3 vcpkg

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

我已经根据guide from GTK使用vcpkg安装了GTK。我正在使用Visual Studio 2019,并且能够编译和运行示例程序here,但是在主题和图标方面存在问题。根据安装指南,在构建和分发应用程序部分下,必须完成一些操作才能使主题和图标生效。

我首先下载了指南建议的Windows主题,并将其放在share目录中,然后在settings.ini目录中创建了etc文件。它说将其放置在“安装目录”中,我假设这是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

因此,似乎永远找不到ssettings.ini文件来告诉它使用Windows 10主题。有人有运气吗(无论是从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

从VS2019中的Release或Debug运行时,所有内容保持不变。

1 个答案:

答案 0 :(得分:4)

vcpkg不会分发被视为外部资源的主题和图标,并且GTK分发指南中给出的有关这些资源在Windows 10上的位置的说明也不是很清楚。还vcpkg issue#4417这里报告了该问题。

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

  1. 假设您具有MSYS2,请在mingw-w64-x86_64-adwaita-icon-theme软件包管理器中安装pacman软件包(如果尚未在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外观。

Gtk Hello