The 21-year-old right-back spent the second half of last season on loan at Bournemouth, where he made six appearances, and previously had loan spells at Swansea City and MK Dons.
"It feels brilliant and I am delighted to get it over the line. I can't wait to get started," he told QPR's website.
"I just want to kick on and I feel I am at the perfect place to do that now."
R's boss Mick Beale has been keen to add a right-back to his squad since taking over at the Championship club earlier this summer.
"I like the full-backs to be an addition to our attack, and he provides that," said Beale.
"He is a young player who will fit in well to our changing room. We are delighted to have him."