- Is there any other way to achieve my goal and get a screenshot of a widget with increased quality (for zooming purposes)?
You could use the QWidget::render() to draw into a pixmap of the size you want. I do not know if the "quality" (by which I assume you mean resolution) will be set according to the size of the pixmap, but it is worth trying. Obviously, if your widgets contain pixmap images (like icons), these will remain at whatever resolution they have on screen so you will get blockiness.

The QWidget::grab() method works at screen resolution, as you have observed.