Currently the tab key, when not completing, inserts a hard tab in the qt console. That makes it harder to paste that code later into editors, and also causes other issues as discussed in #513.
I'm tagging this as bug and not enhancement b/c tab-as-4-spaces is pretty much a universal python standard at this point, so the fact that we don't quite follow it in this context, should be seen as a bug.
#513 isn't actually other issues, it's exactly this. It was misunderstood as the wrong number of spaces because tabs align with tab-stops, so vary in width.
I added a fix to the qtconsole-menu PR, as it's two lines. Should close both issues.
Now that tabs=4sp is so standard, you might think the Python interpreter would stop reading tabs as 8 spaces with respect to indentation:
exec "def foo():\n\ta=5\n return a\nprint foo()"
add 4-space soft-tabs to qtconsole
pressing tab inserts four spaces, so there should never be any '\t' characters
inserted by typing.