如何在Anjuta项目中包含资源文件 [英] How to include resources file in anjuta project

查看:97
本文介绍了如何在Anjuta项目中包含资源文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试更新vala中的图形项目,将许多代码行移到ui文件中. 我想使用模板(可用于glib-2.38和GTK + 3.8,类似这样).

I'm trying to update a graphical project in vala, moving lot of code lines into an ui file. I want to use template (available with glib-2.38 and GTK+3.8, something like that).

我的项目由Anjuta和autoconf管理.

My project is managed with Anjuta and autoconf.

src目录中

application.ui:

<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <!-- interface-requires gtk+ 3.8 -->
  <template class="SpiWindow" parent="GtkApplicationWindow">
    <property name="title" translatable="yes">Example Application</property>
    <property name="default-width">600</property>
    <property name="default-height">400</property>
    <child>
        <placeholder />
    </child>
  </template>
</interface>

resources.xml:

<?xml version="1.0" charset="UTF-8" ?>
<gresources>
  <gresource prefix="/org/app/spi">
    <file compressed="true" preprocess="xml-stripblanks">application.ui</file>
  </gresource>
</gresources>

src/Makefile.am中的

我已将--gresources resources.xml附加到spi_VALAFLAGS.最后,我这样声明了Gtk.ApplicationWindow

in src/Makefile.am I have append --gresources resources.xml to the spi_VALAFLAGS. And finally I declared The Gtk.ApplicationWindow like this

[GtkTemplate(ui = "/org/app/spi/application.ui")]
internal class SpiWindow : Gtk.ApplicationWindow {

    // Constructor
    public Window (Gtk.Application application) {
        Object(application: application);
    }
}

但是当我编译然后运行该应用程序时,会出现错误消息:

But when I compile and then run the application, there is the error message :

(spi:9749): Gtk-CRITICAL : Unable to load resource for composite template for type 'SpiWindow': The resource at '/org/app/spi/application.ui' does not exist
(spi:9749): Gtk-CRITICAL : gtk_widget_init_template: assertion 'template != NULL' failed

推荐答案

您仍然需要编译资源并将其包括在内:

You still need to compile the resources and include them:

GLIB_COMPILE_RESOURCES=glib-compile-resources

resources.c: resources.xml $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies resources.xml)
  $(GLIB_COMPILE_RESOURCES) --target=$@  --generate-source $<

,并将resources.c作为源文件包含在spi_SOURCES中.

and include resources.c as a source file in spi_SOURCES.

这篇关于如何在Anjuta项目中包含资源文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆