Flight QF974 was about midway between Brisbane and Townsville when the pilot alerted the passengers they would be landing in Rockhampton, the Australian Broadcasting Corp. reported.
"The captain came over the loudspeaker and said 'I'm stopping the service and everyone fasten your seatbelts,'" passenger Warren Townrow said.
"And all the oxygen masks fell out from the compartment above and then we just flew around for a while and everyone was calm there was no panic or anything like that -- the staff were fantastic," he added.
Fellow passenger Lynn Holler said she and the rest of the passengers were calm throughout the incident.
"[It] went down quite calmly. There wasn't any great drop or anything -- everybody was fine, nobody panicked as far as I could see," she said.
Qantas has not said what caused the Boeing 737-800 to lose cabin pressure.