views:

1464

answers:

2

We don't have a Qt plug-in installed for MSVS, and it makes me wonder how/whether it is possible to load resources (images, etc) to the application.

+2  A: 

Use the qrc executable to generate a cpp file which you can include in your project:

/usr/local/Trolltech/Qt-4.5.1/bin/rcc -name core core/core.qrc -o build/release/core/qrc_core.cc

See http://doc.trolltech.com/4.0/resources.html

However, I strongly suggest using qmake or some other build system to automate this for you.

cheez
can't I create a custom build step, just like I did for .moc and .ui files?
MadH
Yep, you sure can.
cheez
+4  A: 

Yes, you can load ressources. Unfortunately, the qrc Editor which create qrc files is part of the Qt Addin for VS...
But you can create this xml file by hands, for the format see here
Once the qrc file created, you have at least two possibilities :

A) Use qmake

  1. Add a reference to your qrc file in your pro file :

    RESOURCES = ApplicationResources.qrc

  2. Regenerate your vcproj from your pro by using qmake

    qmake -tp vc

B) If you don't generate your vcproj file from your pro file, you can :

  1. Add manually your qrc file in your solution, for example in the following path :

    Resource Files/Res/ApplicationResources.qrc

  2. Add the following commands in the properties of the qrc file in visual studio :
    command line : $(QTDIR)\bin\rcc.exe -name ApplicationResources res\ ApplicationResources.qrc -o $(IntDir)\qrc__ ApplicationResources.cpp
    Description : RCC res/ApplicationResources.qrc
    Output : $(IntDir)\qrc__ ApplicationResources.cpp

C) You can also use an external binary resources file
The command line :rcc -binary myresource.qrc -o myresource.rcc

In the application, you have to register the resource file : QResource::registerResource("/path/to/myresource.rcc");

For using resource file in the source code see the doc

However, like cheez, I also suggest using qmake and pro file and do not edit properties by hand in Visual Studio...

Hope this helps !

Matthieu
You can create qrc files in qt designer too.
Eugene
I'm using the second suggestion, and like it! After all it's not a hassle to let MSVS compile it -- not every day I add a new resource file!
MadH
the only problem i find now, is that .exe file doesn't have an icon associated with mainwindow widget :-) i guess that's because resources are set at runtime
MadH