В то время как вы можете использовать grabWidget , чтобы получить растровое представление диалога, по существу вы будете печатать пиксели растрового изображения, то есть диалог растеризуется с разрешением экрана, а затем масштабируется до разрешения принтера , Это может или не может привести к некоторым артефактам.
Другой способ сделать это - использовать функцию QWidget :: render () , которая берет устройство рисования. Таким образом, вы можете передать свой принтер в качестве устройства рисования. Теперь диалоговое окно «нарисовано» на принтере с разрешением принтера.