是否可以使用其他 UI 元素扩展 Qt 打印对话框 (QPrintDialog),因为它可以通过 PD_ENABLEPRINTTEMPLATE 宏在 MFC 中完成?请参阅此链接。
我在 Qt 文档中没有找到任何关于此的内容。
似乎 Qt 在 Windows 上显示了本机打印对话框,这可能使它变得更加困难?
这在平台中立的方式中是不可能的。对于QFileDialog
,您可以对其进行子类化(在这种情况下,Qt 会自动在所有平台上使用非本地对话框)并将 UI 元素添加到布局中。在 X11 上,这也适用于QPrintDialog
,但在 WIN32 上,有一个完全独立的源代码 (src/gui/dialogs/qprintdialog_win.cpp),它调用PrintDlgEx
Windows API 函数。不存在可以在 Windows/MacOS 上使用的 QPrintDialog 的平台无关实现。
我会考虑以这样一种方式设计 UI,即应用程序的“打印”操作显示一个包含所有应用程序特定设置的对话框,可能包括预览,其中包含一个按钮,用于打开 QPrintDialog 以选择打印机并设置任何打印机特定属性。