The problem stems from the fact that the tikz-qtree
redefines the command \tikz@edge@to@parent@path
which is used to draw the edges from the parents to the children. It does this to include the specific node anchors for the parents and children (rather than them being computed automatically). To do this properly, it needs to know the direction in which the tree is growing. This is done by setting the key grow=<dir>
, which is the "right" way to do it for all trees, whether qtree or not.
There may well be other things that are overwritten by the tikz-qtree
package but this is the one that is causing the effect you see. Compare the following example, produced by varying the packages and so forth.
Original code:

With grow=right
instead of rotate=90
:

Loading tikz-qtree
:

Loading tikz-qtree
and grow=right
:

Loading tikz-qtree
but restoring \tikz@edge@to@parent@path
(no difference for grow=right
versus rotate=90
):

Notice the effect of specifying the actual anchors by comparing the first and fourth examples: the lines are joined where they meet at the parent.
So, to get it looking exactly as if you hadn't loaded tikz-qtree
, you need to at least restore the definition of \tikz@edge@to@parent@path
(there may be other things that will come up with more complicated examples). If all you want is something that still looks right with either loading or not loading tikz-qtree
then using the key grow=right
might be the simplest method.
Here's the save-and-restore code.
\documentclass{article}
%\url{http://tex.stackexchange.com/q/66884/86}
\usepackage{tikz}
\usetikzlibrary{trees}
\makeatletter
\let\orig@tikz@edge@to@parent@path=\tikz@edge@to@parent@path
\tikzset{
original tree type/.code={%
\let\tikz@edge@to@parent@path=\orig@tikz@edge@to@parent@path
}
}
\makeatother
\usepackage{tikz-qtree}
\begin{document}
\begin{tikzpicture}
[rotate=90,original tree type]
\node{a}
child {
node{c}
child {
node {d}
child { node {g} child {node {h}} }
child { node {e} child {node {f}} }
}
}
child {
node{b}
}
;
\end{tikzpicture}
\end{document}