Я работаю над приложением, которое использует библиотеку Qt в Windows.
Я хочу, чтобы пользователь мог настроить принтер для печати приложения. Поэтому мое главное меню будет содержать следующие записи:
- Настройка принтера ...: должно отображаться диалоговое окно, в котором пользователь может выбрать и настроить принтер
- Печать ...: выполнить фактическую печать
В других приложениях, не относящихся к Qt, я использовал функцию Windows PrintDlg с флагом PD_PRINTSETUP. Это показало следующий диалог, который именно то, что я хочу:

Однако функция Qt QPrintDialog использует более новую функцию PrintDlgEx, которая выглядит следующим образом:

Это диалоговое окно предназначено для реальной печати. Не для настройки и настройки принтера.
- Показывает кнопку «Печать» вместо простого «ОК».
- Содержит групповое поле «Диапазон страниц», которое не очень полезно при настройке конфигурации принтера.
QPageSetupDialog не очень полезен в моем случае. Это выглядит так:
Так что это делает его полезным только для настройки размера страницы, ориентации и полей.
Есть ли в Qt чистый способ получить приличный диалог настройки принтера?
Если я не могу найти чистый способ, мне нужно вернуться к собственной функции Windows PrintDlg, которая означает исправление или дублирование кода в исходном коде Qt qprintdialog_win.cpp.