QPrintDialog и настройка принтера - PullRequest
0 голосов
/ 16 июня 2011

Я работаю над приложением, которое использует библиотеку Qt в Windows.

Я хочу, чтобы пользователь мог настроить принтер для печати приложения. Поэтому мое главное меню будет содержать следующие записи:

  • Настройка принтера ...: должно отображаться диалоговое окно, в котором пользователь может выбрать и настроить принтер
  • Печать ...: выполнить фактическую печать

В других приложениях, не относящихся к Qt, я использовал функцию Windows PrintDlg с флагом PD_PRINTSETUP. Это показало следующий диалог, который именно то, что я хочу: enter image description here

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

Это диалоговое окно предназначено для реальной печати. Не для настройки и настройки принтера.

  • Показывает кнопку «Печать» вместо простого «ОК».
  • Содержит групповое поле «Диапазон страниц», которое не очень полезно при настройке конфигурации принтера.

QPageSetupDialog не очень полезен в моем случае. Это выглядит так: enter image description here Так что это делает его полезным только для настройки размера страницы, ориентации и полей.

Есть ли в Qt чистый способ получить приличный диалог настройки принтера?

Если я не могу найти чистый способ, мне нужно вернуться к собственной функции Windows PrintDlg, которая означает исправление или дублирование кода в исходном коде Qt qprintdialog_win.cpp.

1 Ответ

1 голос
/ 16 июня 2011

Боюсь, вам нужно вернуться к стандартной функции Windows PrintDlg, поскольку Qt4 правильно использует функцию PageSetupDlg для настройки страницы.

В Windows, хотя PrintDlg может использовать PD_PRINTSETUP, чтобы сделать диалоговое окно в качестве диалогового окна «Настройка печати», эта функция не рекомендуется для новых приложений.

Цитата из MS: «новые приложения не должны использовать PrintDlg для этой цели. Диалоговое окно« Параметры печати »заменено диалоговым окном« Параметры страницы », созданным функцией PageSetupDlg

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...