我正在尝试更新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项目中包含资源文件
发布评论