QPSK has 4 discrete points so there are two bits per symbol. The bandwidth of a QPSK signal will be dependent on shaping of symbols. You want to get the most energy per bit but keep the bandwidth to a minimum. This is a trade off.
If you shape the symbols through a root raised filter you will get close to 40 Mbits per second for QPSK within a 20 MHz bandwidth.