[Interest] QPrintPreviewWidget
Dan Allen
dan at jerber.co.uk
Tue Apr 4 17:59:07 CEST 2017
Hi Roland,
Not 100% sure what you mean in the first part. Are you also saying I
shouldn't use a another thread?
Thanks,
Dan Allen.
On 04/04/17 12:24, Roland Hughes wrote:
>
> You know, "painting into an off screen image is not GUI related"
> __should__ be true. Haven't tried it since 4.8.x, but it certainly
> wasn't true back then. Desperately wanted to thread off the generating
> of many pixmaps which would be later BLITted onto the touch screen as
> needed by application. Nope nope nope nope. (Please, don't suggest
> alternatives to pre-loading. Embedded device, single core, no GPU
> trying to achieve 10 days of run-time battery life. Last I heard, we
> did it and we had a responsive GUI touchscreen.)
>
> This "all things GUI in primary thread" philosophy has an awful lot of
> real world fallout, especially in the embedded world where RAM is fast
> but hardened storage is slooooooow. It also leads to some pretty
> horrible database interfaces, in particular when using
> spreadsheet/table models to scroll through networked/remote databases
> with millions of records where the connection could require several
> seconds to respond. Yes, I've had to do some hacks to thread that
> stuff off, but the primary examples floating around out there show it
> all running in the GUI thread.
>
> Roland
>
>
> On 04/04/2017 01:47 AM, interest-request at qt-project.org wrote:
>> On 04/01/2017 09:48 AM, Dan Allen wrote:
>>> Hi Bill,
>>>
>>> I agree, however when the print is quite complex it makes the GUI very
>>> unresponsive.
>>>
>>> Painting into an off screen image is not GUI related. The print preview could
>>> show something like "Generating Preview" while a background thread generates it
>>> and then show it when it's ready for example. This would prevent the GUI from
>>> seeming unresponsive to the user. I wasn't sure if there was a current method to
>>> do something like this.
>>>
>> Yes. We agree that the actual printing is non GUI, but if you want
>> to show a print preview or progress meter, that is GUI and needs
>> to stay in the main thread.
>>
>> So, something like:
>> - Create a progress meter dialog.
>> - Start your printing in a sub thread.
>> - The main thread waits, perhaps in a sub-QEventLoop, servicing events.
>> - After a few seconds, if printing has not completed, show the dialog.
>> - The sub-event loop monitors the printing process with a thread safe
>> communication mechanism, like signals and slots.
>> - When the printing completes, close the dialog.
>> - Exit your sub-event loop.
>>
>>> Thanks,
>>>
>>> Dan Allen.
>
> --
> Roland Hughes, President
> Logikal Solutions
> (630)-205-1593
>
> http://www.theminimumyouneedtoknow.com
> http://www.infiniteexposure.net
> http://www.johnsmith-book.com
> http://www.logikalblog.com
> http://www.interestingauthors.com/blog
> http://lesedi.us/
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20170404/1b39817e/attachment.html>
More information about the Interest
mailing list