Let \(\mathcal {C}\) be a quasi-cyclic code of index \(\ell \) \((\ell \ge 2)\) and co-index m over finite field \(\mathbb {F}_q\) . Let G be the subgroup of the automorphism group of \(\mathcal {C}\) generated by \(\rho ^\ell \) and the scalar multiplications of \(\mathcal {C}\) , where \(\rho \) denotes the standard cyclic shift. In this paper, we find an explicit formula for the number of orbits of G on \(\mathcal {C}\setminus \{\textbf{0}\}\) . Consequently, an explicit upper bound on the number of nonzero weights of \(\mathcal {C}\) is immediately derived and a necessary and sufficient condition for codes meeting the bound is exhibited. The map \(\mu _q: x \mapsto x^q\) is a ring isomorphism from \(R_m\) onto itself, where \(R_m=\mathbb {F}_q[x]/\langle x^m-1\rangle \) . It can be extended to \(R^\ell _m\) componentwise. If \(\mathcal {C}\) is a one-generator quasi-cyclic code, a tighter upper bound on the number of nonzero weights of \(\mathcal {C}\) is obtained by considering a larger automorphism subgroup which is generated by the multiplier \(\mu _q\) , \(\rho ^\ell \) , and the scalar multiplications of \(\mathcal {C}\) . In particular, we list some examples to show the bounds are tight.