This approach holds for any type of an external file that needs to be embedded in an executable, such as an image (icon), a text file containing help etc. The embedding is accomplished by creating a Qt resource collection file *.qrc that lists the files that will become the part of the application source tree.
Qt4 or
Qt5 compatible
I am going to demonstrate the problem on an icon alignLeft.png that needs to be embedded in an application. To achieve the embedding we need to perform the following steps in Qt Creator:
- In the project folder create a folder 'icons'. Place 'alignLeft.png' into the folder 'icons'.
- To create a resource file: Right-click on the highlighted project -> Add New -> Qt -> Qt Resource file. Name the resource file 'qtresourceexample.qrc'.
- To edit the resource file: Right-click on qtresourceexample.qrc -> Open With -> Plain Text Editor. Enter the following lines into the resource file:
<!DOCTYPE RCC><RCC version="1.0"> <qresource> <file>icons/alignLeft.png</file> </qresource> </RCC>
- Finally, check whether the resource file appeared in the *.pro file.
SOURCES += \ main.cpp \ mainwindow.cpp HEADERS += \ mainwindow.h RESOURCES += \ qtresourceexample.qrc
- In the code we refer to the icon in the following way:
alignLeftAction->setIcon(QIcon(":/icons/alignLeft.png"));