[Interest] QPrintPreviewWidget

william.crocker at analog.com william.crocker at analog.com
Mon Apr 3 15:49:14 CEST 2017


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.
>
>
> On 01/04/17 13:43, william.crocker at analog.com wrote:
>> On 04/01/2017 03:41 AM, Dan Allen wrote:
>>> Hi,
>>>
>>> Could anyone tell me if it's possible to paint into a QPrintPreviewWidget in
>>> another thread, and if so, how?
>>>
>>> I have created a class to perform printing and this runs in another thread.
>>> When used for printing it works fine.  However when used for the print preview,
>>> nothing is shown unless I force the signal to either Qt::DirectConnection (i.e.
>>> use the GUI thread) or Qt ::BlockingQueuedConnection (i.e. block the GUI
>>> thread).
>>>
>> Dan:
>>
>> Conventional wisdom, if not the rule of law, states that all GUI activity
>> should be done from the main thread. You may just be experiencing
>> the Qt library enforcing this rule.
>>
>> Bill
>>
>>> Thanks,
>>>
>>> Dan Allen.
>>>
>>>
>>> _______________________________________________
>>> Interest mailing list
>>> Interest at qt-project.org
>>> http://lists.qt-project.org/mailman/listinfo/interest
>>>
>>>
>>>
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/interest
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
>
>



More information about the Interest mailing list