【发布时间】:2016-08-30 09:01:21
【问题描述】:
我正在尝试将我的应用程序从 linux 移植到 Windows,但我遇到了主题问题。在 linux 中,这是开箱即用的,只需编译它,应用程序就会使用好的主题并且看起来很原生。
我已经在 MSYS2 中安装了 gtkmm3 和 gtk3,我正在使用 CMake 构建它。没关系,我必须使用二进制文件将所有 dll 复制到目录才能执行它。我没有复制其他任何东西。我正在尝试创建“解压缩并执行”包。
我的问题是,该应用程序看起来不合适。它看起来根本不是原生的。窗口周围有阴影,这在 Windows10 中很好,但在 Windows 7 中看起来不是原生的。还缺少几个图标。
即使 gitk3-demo 看起来也不是原生的(但它至少有正确的最小化/最大化/关闭图标)。
所以问题是:如何在 Windows 上实现 GTK3 应用程序的原生外观?或者至少是原生的窗饰?
谢谢
【问题讨论】:
-
@oldtechaa GTK+ 中的 win32 主题内置于 GTK+ 中; C++ 无关紧要。缺少图像是由于图标主题配置错误,与源代码无关。虽然我想知道“标准”标题栏如何没有图标,但 gtk3-demo 使用的 GtkHeaderBar 确实......
-
在 msys2 IRC 频道上,raymod2 说:“他需要将图标从 Adwaita 复制到他的二进制文件可以找到它们的位置。我把我的放在一个名为“share”的文件夹中文件夹作为我的应用程序二进制文件。对于他的屏幕截图中缺少的图标,他需要:window-close.png、window-maximize-symbolic.symbolic.png 和 window-minimize-symbolic.symbolic.png 位于 share/icons/ Adwaita/16x16/动作。”希望对您有所帮助。
-
谢谢@DavidGrayson,这实际上是图标。
-
肯定有办法做到这一点,因为 MyPaint 有适当的原生窗口装饰(不像下面的假 XP)。但我在代码中找不到他们实际启用它的任何地方。
标签: gtk gtk3 gtkmm msys2 gtkmm3