For those of us using Qt for our user interfaces it is nice to take advantage of the built in resource management system. This snippet shows how to load up an image from a resource and convert it into an Irrlicht texture. It's not especially neat and involves more copying than I would ideally like but it seems to work OK and I couldn't think of anything better. It would be prefereable to hand the file data directly to Irrlich. i.e. read the PNG file into memory using QFile and then pass a pointer to the memory block to the normal Irrlicht texture loading routines but I don't think there is a public interface for that. The interfaces want a file path, and the leading ':' format to indicate that this is a resource not a real path isn't going to work (Qt actually compiles resources into the executable so they don't exist as standalone files - it's a neat system and potentially very fast).
Irr can use executable resources with the IMemoryFile interface, how that would interact with Qt I don't know. For your texture lock, you should use WRITE instead of RW, because having READ there may cause a readback from the GPU.
Thanks for the tip. This code is probably a bit neater than the previous suggestion (as long as I've got the memory management right - my assumption is that once getTexture has happened, I don't need to maintain the memory block):