Oh, with a leading slash after the colon? I'll try that.
I suppose that was something that changed in Qt 5, because it used to work with just the colon.
Oh, with a leading slash after the colon? I'll try that.
I suppose that was something that changed in Qt 5, because it used to work with just the colon.
Unfortunately, that didn't work. Many of the other images in my project are already referenced with a leading slash (e.g. ":/img/something.png").
I traced execution into the QResourcePrivate::load function, and res->findNode() always returns -1. It would seem as though the resources aren't being loaded.
You can use QDir or QDirIterator on ":/" to look into and traverse the resource "file system".
Or the resource inspector of GammaRay
Cheers,
_
xtal256 (15th February 2017)
Dude, that looks amazing! It's sort of like what my application is to Windows, but better
It should definitely help me in debugging Qt issues.
thanks
I used the following code to print all resources:
But none of my images were there. Just a bunch of default Qt resources. So it's clear that the resources are not even getting into the build. They are definitely all there in the .qrc file, and I touched it to make sure the build would run RCC on it.Qt Code:
QDirIterator it(":/", QDirIterator::Subdirectories); while (it.hasNext()) { qDebug() << it.next(); }To copy to clipboard, switch view to plain text mode
Hmm, is your resource part of the application or a library?
I.e. is it in the RESOURCES variable of the .pro file that generates the main executable?
Cheers,
_
I don't have a .pro file, I'm using the VS add-in to handle the build. I suspect that I just haven't configured it right, but I don't know exactly how it works. All I know is that it is definitely processing the .qrc file, but obviously it isn't picking up the images and compiling them into the app.
The more important part of anda_skoa's question is whether the resources you are trying to use are in your app EXE or if they are in a DLL you are dynamically loading into your app. If they are in a DLL, you'll need to put a Q_INIT_RESOURCE() macro in main() after your QApplication instance is declared so it will load them properly:
Qt Code:
Q_INIT_RESOURCE( MyDLL );To copy to clipboard, switch view to plain text mode
(assuming your DLL is named "MyDLL.dll")
In Visual Studio, right-click on your qrc file name in the Solution Browser and go to the General properties page. It should look something like the attached screenshot; basically, it should be running rcc on the resource file and putting something in the GeneratedFiles directory.
Capture.jpg
Last edited by d_stranz; 16th February 2017 at 03:35.
<=== The Great Pumpkin says ===>
Please use CODE tags when posting source code so it is more readable. Click "Go Advanced" and then the "#" icon to insert the tags. Paste your code between them.
It's in my app's exe, not a dll.
But I think the problem is that the properties that are not correct.
Comparing my property window to your screenshot, the only difference is that my "Additional Dependencies" doesn't list any of the image files like yours does. It just has "%(FullPath);%(AdditionalInputs)". I don't know what %(AdditionalInputs) is.
However, even when I change "Additional Dependencies" to include all my images (using relative paths, like in your screenshot), it still doesn't work. I even tried touching one of the images thinking maybe the incremental build was skipping over them, but nope.
Here is the build output, at "diagnostic" verbosity.
Try to remove all qrc_*.cpp files from GeneratedFiles folder and then build the project.
If this work something is wrong with the qrc file definition in the project.
I had the same problem. Try to uncheck "Shadow build" in "Projects".
The OP is using Visual Studio, not Qt Creator. VS has no explicit concept of shadow builds although it does allow you to set various output and intermediate directories so you can do an out-of-source build in the same way as a shadow build.I had the same problem. Try to uncheck "Shadow build" in "Projects".
I doubt this is the OP's problem. It is probably a dependency issue - maybe the resource files are being excluded from the build because of some VS property setting.
<=== The Great Pumpkin says ===>
Please use CODE tags when posting source code so it is more readable. Click "Go Advanced" and then the "#" icon to insert the tags. Paste your code between them.
Bookmarks