[QGIS-Developer] open atlas layout, using python

Raymond Nijssen r.nijssen at terglobo.nl
Fri Oct 12 02:22:14 PDT 2018


Hi Nyall,

The setAtlasPreviewEnabled(True) still does not work correctly. It works 
exactly like the python workaround you mentioned: It toggles the atlas 
button but does not activate the atlas. I mean, the prev and next 
buttons stay disabled and the map does not display page number 1.

If I then, turn off and on the atlas preview, it works as expected.

Does it need to get some kind of gui redraw/update call?

Regards,
Raymond


On 12-10-18 01:39, Nyall Dawson wrote:
> On Fri, 12 Oct 2018 at 02:22, Raymond Nijssen <r.nijssen at terglobo.nl> wrote:
>>
>> By the way, the fragile code solution does not work for me. It does
>> toggle the button but it does not activate the atlas preview.
> 
> Ok - I've done the proper approach in
> https://github.com/qgis/QGIS/pull/8170/files
> 
> (I've also exposed an API call to show the item properties for a
> particular item)
> 
> Let me know if there's anything else you think should be exposed from
> the designer to the designer API.
> 
> 
> Nyall
> 
>>
>> # open layout
>> designer = iface.openLayoutDesigner(layout)
>>
>> # turn on atlas preview mode
>> lo_view = designer.view()
>> lo_window = lo_view.window()
>> action = lo_window.findChild(QAction, 'mActionAtlasPreview')
>> action.toggle()
>>
>>
>> On 11-10-18 16:51, Raymond Nijssen wrote:
>>> Hi Nyall,
>>>
>>> It sounded great and I spent some hours on that better approach, but I
>>> didn't succeed. So maybe 3.6 will have it...
>>>
>>> Tnx!
>>> Raymond
>>>
>>>
>>> On 25-09-18 23:57, Nyall Dawson wrote:
>>>> On Tue, 25 Sep 2018 at 22:36, Raymond Nijssen <r.nijssen at terglobo.nl>
>>>> wrote:
>>>>>
>>>>> 1. Can I open a layout window with a python command?
>>>>
>>>> designer = iface.openLayoutDesigner( layout )
>>>>
>>>>> 2. Can I turn on "atlas preview" with a python command?
>>>>
>>>> You'd have to do some fragile code to do this. Basically:
>>>>
>>>> - get designer window from designer.view()'s parent window
>>>> - find the mActionAtlasPreview child action in the window
>>>> - manually toggle it on
>>>>
>>>> This should work, but isn't stable API - so is likely to break ;)
>>>>
>>>> A better approach is to (quickly, before 3.4 final!) file a PR
>>>> exposing the toggle atlas preview behavior to
>>>> QgsLayoutDesignerInterface. Then you'll be able to just do:
>>>>
>>>> designer = iface.openLayoutDesigner( layout )
>>>> designer.toggleAtlasPreview( True )
>>>>
>>>> Nyall
>>>>
>>>>
>>>> Hope anyone knows!
>>>>>
>>>>> Kind regards,
>>>>> Raymond
>>>>>
>>>>> _______________________________________________
>>>>> QGIS-Developer mailing list
>>>>> QGIS-Developer at lists.osgeo.org
>>>>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>>>>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>>>>
>>>
>>
>> _______________________________________________
>> QGIS-Developer mailing list
>> QGIS-Developer at lists.osgeo.org
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> 


More information about the QGIS-Developer mailing list