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

ufo*_*Dan 5 c++ visual-studio gtk3 vcpkg

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

我已经vcpkg根据GTK的指南安装了GTK。我使用Visual Studio 2019,它是能够编译和运行示例程序在这里,但有关主题和图标的问题。根据安装指南,在构建和分发应用程序部分下,必须执行一些操作才能使主题和图标正常工作。

我首先下载指南建议的 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
Run Code Online (Sandbox Code Playgroud)

因此,它似乎从未找到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
Run Code Online (Sandbox Code Playgroud)

我把这些放在

<VS2019Project>\x64\Release,

<VS2019Project>\x64\Debug,

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

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

在发布或调试下从 VS2019 运行时,一切都没有变化。

Pet*_*ete 5

被视为外部资源的主题和图标不由 vcpkg 分发,并且 GTK 的分发指南中给出的关于这些资源应该在 Windows 10 上的位置布局的说明并不十分清楚。该问题也已在此处报告vcpkg issue#4417

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

  1. 假设您有 MSYS2,如果您的 MSYS2 安装尚未完成,请mingw-w64-x86_64-adwaita-icon-theme使用pacman包管理器安装包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子文件夹中:要了解为什么请参阅本文主题位置[假设这里没有设置全局桌面环境变量]。

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

  5. 重新编译,您应该获得应用程序窗口的 Windows 10 外观。

你好