我正在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运行时,所有内容保持不变。
答案 0 :(得分:4)
vcpkg不会分发被视为外部资源的主题和图标,并且GTK分发指南中给出的有关这些资源在Windows 10上的位置的说明也不是很清楚。还vcpkg issue#4417这里报告了该问题。
以下提出的解决方案是安装
.exe应用程序所在的VS项目的<VS2019Project>\x64\Release
目录中的所有资源[这是问题的本地解决方案。全局方法应考虑某些用户定义的免费桌面环境变量的设置,此处不讨论。可以从GTK Guide中指示的辅助MSYS2发行版和主题中挑选图标。该解决方案应复制到Debug分支。
假设您具有MSYS2,请在mingw-w64-x86_64-adwaita-icon-theme
软件包管理器中安装pacman
软件包(如果尚未在MSYS2安装pacman -Syu mingw-w64-x86_64-adwaita-icon-theme
上完成)。
将C:\msys64\mingw64\share\icons
复制到<VS2019Project>\x64\Release\share\icons
您应该同时获得hicolor
和Adwaita
图标作为目标目录的子目录。
将在源gtk-3.20
目录中下载的主题资源直接复制到<VS2019Project>\x64\Release\share\themes\Windows10\gtk-3.0\
中。不要将这些资源放在gtk-3.20
子文件夹中:要了解为什么要查阅本文Theme Location [假设此处未设置全局桌面环境变量]。
创建一个<VS2019Project>\x64\Release\etc\gtk-3.0
目录,并将您的settings.ini
放入其中。
重新编译,您应该为应用程序窗口获得Windows 10外观。