【发布时间】:2014-12-31 12:18:55
【问题描述】:
我有一个在 Ubuntu 上开发的 C/GTK+ 应用程序,我想交叉编译它以便它在 MS Windows 上运行。
我按照this guide设置编译器,程序编译成功,在MS Windows上运行。
但是,搜索条目上的图标不见了。
这是我在 Ubuntu 上得到的结果:
这是我在 MS Windows(或 Wine)中运行程序时得到的结果:
另外,终端显示如下:
(main.exe:8): Gtk-WARNING **: Could not find the icon 'edit-find-symbolic'. 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 中显示图标,而无需在 Windows 机器上安装任何东西?我的应用程序旨在能够在不安装任何东西的情况下从 USB 闪存驱动器运行。
我用来创建应用程序的 Glade 文件的相关部分,以防有用:
<object class="GtkSearchEntry" id="searchentry1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="primary_icon_name">edit-find-symbolic</property>
<property name="primary_icon_activatable">False</property>
<property name="primary_icon_sensitive">False</property>
</object>
到目前为止我尝试过的事情:将 edit-find-symbolic.svg 复制到包含 main.exe 的目录(即与 dll 一起);在那里复制整个目录/usr/share/icons/gnome。这些都不起作用。
更新:
在包含main.exe 的目录中,我添加了一个子目录share,并在其中添加了另一个子目录icons。我将edit-find-symbolic.svg 放在了这个子目录中。搜索图标看起来还是一样(不起作用),但是这次的终端输出不同:
(main.exe:8): GLib-GIO-CRITICAL **: g_loadable_icon_load: assertion `G_IS_LOADABLE_ICON (icon)' failed
如果edit-find-symbolic.svg不在此文件夹中,但有一个名为hicolor的文件夹,则图标仍然不起作用,这一次终端中根本没有任何输出。
【问题讨论】:
-
你试过类似this的东西吗? GTK 对 Windows 视觉效果的支持非常糟糕。 Qt 更好,但仍然缺乏像在 Linux 上那样访问系统图标的体面方法。
-
@rubenvb 试过但没用。而且我不认为我想放弃我已经构建的所有东西并使用 Qt 重新开始,因为这只是一个学校项目。如果我不能解决这个问题,我会改用普通的文本输入...
-
是的,您只是缺少默认图标主题。您需要与您的应用程序一起发布。 Adwaita 图标主题是第一个。另一种叫做hicolor icon主题。
标签: c windows gtk cross-platform gtk3