The console code completion is simply based on dynamic object
introspection: to show code completion on object 'obj', it basically
does a 'dir(obj)' and show the returned list in a combo box...
In the editor however, one cannot import all modules (otherwise it
would sometimes be very long to process a file) so the code completion
is based on the 'rope' Python module. In Spyder, rope uses 'Static
Object Analysis' to provide code completion, calltips and go-to-
definition features.
Maybe in your case, the 'qgis' module (which I'm not familiar with) is
impossible for rope to analyze for a reason that I do not know.
Pierre