[QGIS-Developer] Has QgsLayout.itemById() changed?
Alessandro Pasotti
apasotti at gmail.com
Sun Sep 23 00:49:39 PDT 2018
On Fri, Sep 21, 2018 at 8:36 PM Raymond Nijssen <r.nijssen at terglobo.nl>
wrote:
> Not working for me. I just built todays master (e85c09254c) and get the
> same result. What version did you build?
>
Same as yours.
Btw, please file a ticket, I just re-tested it now and got the issue again,
this is my workflow:
- Open a project that has no layouts
- Create a new layout through the manager
- Add a label and set id = "my_label"
- Save and close the layout and the manager
- Run python code and:
In [1]: p = QgsProject.instance()
...: lom = p.layoutManager()
...: lo = lom.layoutByName('Layout 1')
...:
In [2]: lo
Out[2]: <qgis._core.QgsPrintLayout at 0x7f981f368d38>
In [4]: lo.itemById('my_label')
Out[4]: <qgis._core.QgsLayoutItem at 0x7f989db01dc8>
In [5]: lo.items()
Out[5]:
[<PyQt5.QtWidgets.QGraphicsRectItem at 0x7f989db01ee8>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989db01e58>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989db01f78>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da91048>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da910d8>,
<qgis._core.QgsLayoutItem at 0x7f989db01dc8>,
<PyQt5.QtWidgets.QGraphicsRectItem at 0x7f989da91168>,
<qgis._core.QgsLayoutItemPage at 0x7f989da911f8>]
In [6]: lo.items()
Out[6]:
[<PyQt5.QtWidgets.QGraphicsRectItem at 0x7f989da91318>,
<PyQt5.QtWidgets.QGraphicsRectItem at 0x7f989db01ee8>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da913a8>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da91438>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da914c8>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da91558>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989db01e58>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989db01f78>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da91048>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da910d8>,
<qgis._core.QgsLayoutItem at 0x7f989db01dc8>,
<PyQt5.QtWidgets.QGraphicsRectItem at 0x7f989da91168>,
<qgis._core.QgsLayoutItemPage at 0x7f989da911f8>]
In [7]: lo.items()
Out[7]:
[<PyQt5.QtWidgets.QGraphicsRectItem at 0x7f989da91678>,
<PyQt5.QtWidgets.QGraphicsRectItem at 0x7f989da91318>,
<PyQt5.QtWidgets.QGraphicsRectItem at 0x7f989db01ee8>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da91708>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da91798>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da91828>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da918b8>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da913a8>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da91438>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da914c8>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da91558>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989db01e58>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989db01f78>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da91048>,
<PyQt5.QtWidgets.QGraphicsLineItem at 0x7f989da910d8>,
<qgis._core.QgsLayoutItem at 0x7f989db01dc8>,
<PyQt5.QtWidgets.QGraphicsRectItem at 0x7f989da91168>,
<qgis._core.QgsLayoutItemPage at 0x7f989da911f8>]
Now, there is another (possibly unrelated) issue: if I open the layout
again and do nothing but hit "save" and close the layout, when re-running
the code I get a brand new set of QGraphicsLineItem each time I save it.
This looks like a bug to me.
>
>
> On 21-09-18 16:29, Alessandro Pasotti wrote:
> >
> > Hi Raymond,
> >
> > You know what? I've just rebased and rebuilt current master and I cannot
> > reproduce it anymore :(
> > I checked the bindings code and it looks fine, can you check latest
> master?
> >
> >
> > On Fri, Sep 21, 2018 at 3:47 PM Raymond Nijssen <r.nijssen at terglobo.nl
> > <mailto:r.nijssen at terglobo.nl>> wrote:
> >
> > Will do so. Thank you Alessandro!
> >
> >
> >
> > On 21-09-18 15:32, Alessandro Pasotti wrote:
> > > Hi Raymond,
> > >
> > > confirmed, there is probably something broken in the bindings,
> > please
> > > file a ticket.
> > >
> > > On Fri, Sep 21, 2018 at 3:20 PM Raymond Nijssen
> > <r.nijssen at terglobo.nl <mailto:r.nijssen at terglobo.nl>
> > > <mailto:r.nijssen at terglobo.nl <mailto:r.nijssen at terglobo.nl>>>
> wrote:
> > >
> > > Running this python script (in qgis 3.3):
> > >
> > > p = QgsProject.instance()
> > > lom = p.layoutManager()
> > > lo = lom.layoutByName('a4')
> > > item = lo.itemById('label_title')
> > > print(item)
> > >
> > >
> > > a few weeks ago, it outputed this:
> > > <qgis._core.QgsLayoutItemLabel object at 0x7fe90b6d0318>
> > >
> > >
> > > but today it outputs:
> > > <qgis._core.QgsLayoutItem object at 0x7fe90b6d0318>
> > >
> > >
> > >
> > > My next line is:
> > >
> > > item.setText('hello')
> > >
> > > which doesn't work anymore, because there is no setText()
> > function on a
> > > QgsLayoutItem. Has anything changed recently? Does any one
> know a
> > > solution?
> > >
> > > Regards,
> > > Raymond
> > > _______________________________________________
> > > QGIS-Developer mailing list
> > > QGIS-Developer at lists.osgeo.org
> > <mailto:QGIS-Developer at lists.osgeo.org>
> > <mailto:QGIS-Developer at lists.osgeo.org
> > <mailto: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
> > >
> > >
> > >
> > > --
> > > Alessandro Pasotti
> > > w3: www.itopen.it <http://www.itopen.it> <http://www.itopen.it>
> >
> > --
> > Terglobo
> > Fahrenheitstraat 1
> > 5223 BJ 's-Hertogenbosch
> > The Netherlands
> > +31 (0) 6 25 31 49 83
> > _______________________________________________
> > QGIS-Developer mailing list
> > QGIS-Developer at lists.osgeo.org <mailto:
> 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
> >
> >
> >
> > --
> > Alessandro Pasotti
> > w3: www.itopen.it <http://www.itopen.it>
>
> --
> Terglobo
> Fahrenheitstraat 1
> 5223 BJ 's-Hertogenbosch
> The Netherlands
> +31 (0) 6 25 31 49 83
> _______________________________________________
> 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
--
Alessandro Pasotti
w3: www.itopen.it
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20180923/467ac2b0/attachment.html>
More information about the QGIS-Developer
mailing list