最近遇到一些项目都包含了qrc文件,这个是Qt的资源文件,如果在pro文件中不包含的话,在编译的时候会提示找不到相应资源的错误。
下面说一下手动修改pro和编写qrc文件的方法。我们拿《C++ GUI Programming with Qt 4》第6章Multiple Document Interface节的例子作为说明。
正常编码完成后我们只有editor.h、editor.cpp、mainwindow.h、mainwindow.h、main.cpp源码文件和image文件夹下的资源文件。
我们直接在命令行下执行qmake –project -o .pro 命令,会生成.pro文件,然后用文本编辑器打开这个文件:
######################################################################
# Automatically generated by qmake (2.01a) ??? ?? 18 14:13:48 2007
######################################################################
TEMPLATE = app
TARGET = test
DEPENDPATH += .
INCLUDEPATH += .
# Input
HEADERS += editor.h mainwindow.h
SOURCES += editor.cpp main.cpp mainwindow.cpp
RESOURCES = test.qrc//添加这句,假设qrc的文件名为test
然后编写test.qrc文件:
images/copy.png
images/cut.png
images/document.png
images/icon.png
images/new.png
images/open.png
images/paste.png
images/save.png
然后运行qmake,接着运行nmake命令就可以了。.qrc 文件中列出的 资源文件是程序的源码树的一部分。指定的路径是 .qrc 文件所在目录的相对路径。
注意,列出的 资源文件 必须位于 .qrc 文件所在 目录或者其子目录下。
程序中,可以用资源在源码树中的名称加一个 :/ 前缀 来访问它。例如,在程序的源码树中是 images/cut.png 的文件可以通过 :/images/cut.png 来访问。
但也可以用 file 标签中的 alias 属性来指定:
images/cut.png
这时该文件可以通过 :/cut-img.png 来访问。也可以在 .qrc 文件中用 qresource 标签的 prefix 属性:
它可以为 .qrc 文件中所有文件指定一个前缀:
images/cut.png
这时该文件可以用 :/myresources/cut-img.png 访问。