Bug report #19334
Why python function not work in custom function in QGIS 3.0?
Status: | Open | ||
---|---|---|---|
Priority: | Normal | ||
Assignee: | - | ||
Category: | Unknown | ||
Affected QGIS version: | 3.2 | Regression?: | No |
Operating System: | Windows 7 | Easy fix?: | No |
Pull Request or Patch supplied: | No | Resolution: | |
Crashes QGIS or corrupts data: | No | Copied to github as #: | 27162 |
Description
in QGIS atlas I use a custom function to find the first file containing texts :
import os, fnmatch from PyQt5.QtCore import QFileInfo from qgis.core import * from qgis.gui import * @qgsfunction(args='auto', group='Custom') def findphoto(nb, src1,src2,feature, parent): lnb=0 val='NA' filen = QFileInfo(QgsProject.instance().fileName()) Dir_report=filen.absolutePath() for root, directories, filenames in os.walk(Dir_report): for filename in filenames: if fnmatch.fnmatch(filename, '*' +str(src1) + '*' + str(src2) + '*.jpg' ): lnb=lnb+1 if lnb==nb: val=os.path.join(root,filename) break return val
In QGIS 2.18 it works fine (just change PyQt5 by PyQt4), in QGIS 3.2 it return "NA" value.
In QGIS 3.2 if I try in python mode, it works fine:
import os, fnmatch from PyQt5.QtCore import QFileInfo from qgis.core import * from qgis.gui import * def findphoto(nb, src1,src2): lnb=0 val='NA' filen = QFileInfo(QgsProject.instance().fileName()) Dir_report=filen.absolutePath() for root, directories, filenames in os.walk(Dir_report): for filename in filenames: if fnmatch.fnmatch(filename, '*' +str(src1) + '*' + str(src2) + '*.jpg' ): lnb=lnb+1 if lnb==nb: val=os.path.join(root,filename) break return val
why?
History
#1 Updated by dany Lefeuvre over 6 years ago
oups error in tittle this is for qgis 3.2
#2 Updated by Jürgen Fischer about 6 years ago
- Description updated (diff)