I don't really understand what change addresses are, but could that have something to do with this?
Yes.
Why is the blockchain telling me I have 2 BTC less what Bitcoin-QT tells me I have?
Because a wallet has multiple addresses. Blockchain.info (which is the name of a website and is not "the blockchain") is only telling you the balance of unspent transactions that you have received at one address. The rest of your balance is held by your wallet at some other address.
If you want to see the full list of unspent transactions that your wallet has received and what addresses they have been received at you can type the following in the "Console" of the "Debug Window" found under the "Help" menu.