hi garry,
the issue has (very likely) nothing to do with Qt.
Scribus is using several other external libraries, not only Qt. But, in this case, it's rather likely that the issue has nothing to do with any of them, and it's related to the architecture the programmers of Scribus have chosen for the application and about the code they have written to implement it.
And, well, i'm not sure that Scribus can really create files that are bigger than what it can load.
(you know, the user could have update some software or installed new ones and now has less memory available for the programs)
Except if there is a memory leak in the file loader that is not also in the internal manipulation of the documentation structure.
Anyway, since the problem seems only to be happening in 1.4.6 and not in 1.5.3, we could consider that the problem is fixed for future versions of Scribus.
Or not?
Finally, the problem with the "out of memory" errors is that they can happen at any place in the code.
And you cannot know how much memory is still around (afaik). At least not in an speedy way.
All you can do is: make sure that if something fails because there is no more memory, you catch that error and do something meaningful.
But that "meaningful" is probably what a computer can consider as meaningful and not an end user in a GUI : - )
In such a situation, it's often hard to keep the program up and running... because you don't have any memory available!
While it's for sure wise to catch those errors, it's not easy to write code that checks for it at every and each step.
So, even if the programmer could notice that there has been an issue often all she can do is to shut down the application in a controlled way (as opposed to simply crashing) but showing an alert might be out of reach.
In this specific case, Scribus could just fail to load the document without crashing, delete all references to the document and hope that at the end it has enough memory to tell the user that it failed. Maybe it could say that it was a memory issue, maybe it cannot tell it.
If we want to test this and see if there is somebody that can be done, somebody able to run Scribus in a debugger should create a file that fails in a similar way and check where the program is failing.
I fear that this will be hard on my computer with a multiple GB RAM... but it might be possible with a virtual machine with less memory available.