QPrintDialog并设置打印机

时间:2011-06-16 13:22:21

标签: qt printing

我正在开发一个在Windows上使用Qt库的应用程序。

我希望用户能够配置应用程序应该打印的打印机。所以我的主菜单将包含以下条目:

  • 打印机设置...:应显示一个用户可以选择和配置打印机的对话框
  • 打印...:执行实际打印

在其他非Qt应用程序中,我使用带有标志PD_PRINTSETUP的Windows函数PrintDlg。这显示了以下对话框,这正是我想要的: enter image description here

然而,Qt函数QPrintDialog使用更新的PrintDlgEx函数,如下所示: enter image description here

此对话框似乎适用于实际打印。不适用于设置和配置打印机。

  • 显示“打印”按钮而不是“确定”。
  • 它包含一个“页面范围”组框,在设置打印机配置时它并不真正有用。

QPageSetupDialog对我的情况也没有用。它看起来像这样: enter image description here 因此,这仅对设置页面大小,方向和边距有用。

在Qt中有一个干净的方法来获得一个像样的打印机配置对话框吗?

如果我找不到干净的方法,我需要恢复原生的Windows PrintDlg功能,这意味着修补或复制Qt源代码qprintdialog_win.cpp中的代码。

1 个答案:

答案 0 :(得分:1)

我担心您需要恢复原生Windows PrintDlg功能,因为Qt4正确使用PageSetupDlg功能进行页面设置。

在Windows中,虽然PrintDlg 可以使用PD_PRINTSETUP使对话框充当“打印设置”对话框,但不会为新应用程序推荐该功能。

从MS引用:“新应用程序不应使用PrintDlg来实现此目的。”打印设置“对话框已被PageSetupDlg功能创建的”页面设置“对话框取代。”