@GregWilsonLindberg, I've figured out how to get it to work, I had to add some clarification to the paths and the PRE_TARGETDEPS was wrong:
makeObjDict.target = ObjDict.c
makeObjDict.commands = python ~/CanFestival/canfestival-3-asc/objdictgen/objdictgen.py $$PWD/ObjDict.od $$PWD/ObjDict.c
makeObjDict.depends = $$PWD/ObjDict.od
QMAKE_EXTRA_TARGETS += makeObjDict
PRE_TARGETDEPS += ObjDict.c
I guess that I was mis-understanding the line in the instructions about including the target in PRE_TARGETDEPS, it's the actual target file, in my case 'ObjDict.c', not the build target instructions 'makeObjDict'.
The added '$$PWD/' are needed because the new target instructions don't run in the source directory, so a full path is necessary.