In this paper, we first propose a general framework for constructing quasi-cyclic low-density parity-check (QC-LDPC) codes based on a two-dimensional (2-D) maximum distance separable (MDS) code. Two classes of QC-LDPC codes are defined, whose parity-check matrices are transposes of each other. We then use a 2-D generalized Reed-Solomon (GRS) code to give a concrete construction. The decoding parity-check matrices have a large number of redundant parity-check equations while their Tanner graphs have a girth of at least 6. The minimum distances of the codes are very respectable as far as LDPC codes are concerned. We further show that many existing constructions of QC-LDPC codes based on finite fields in the literature can be unified under this construction. Experimental studies show that the constructed QC-LDPC codes perform well with the sum-product algorithm (SPA).