2012-10-04 92 views
0

是否可以通过其他UI元素扩展Qt打印对话框(QPrintDialog),因为它可以通过PD_ENABLEPRINTTEMPLATE宏在MFC中完成?见this link如何扩展Qt打印对话框

我没有在Qt文档中找到任何关于此的信息。

看来,Qt显示Windows上的本机打印对话框,这可能会使它更加困难?

+0

如果没有正确阅读问题,输入的答案太快;)QFileDialog可以通过继承QFileDialog并检索对话框布局来添加额外的布局,但我不确定QPrintDialog - 文档中显示“在Windows ,使用本地对话框“ –

+0

已更新我的答案,希望现在是正确的:) –

回答

2

这是不可能的平台中立的方式。对于QFileDialog,您可以对其进行子类化(在这种情况下,Qt会自动使用所有平台上的非本机对话框),并将UI元素添加到布局。在X11上,这也适用于QPrintDialog,但在WIN32上有一个完全独立的源代码(src/gui/dialogs/qprintdialog_win.cpp),它调用Windows API函数PrintDlgEx。 QPrintDialog没有平台中立的实现,您可以在Windows/MacOS上使用它。

我会考虑以这样的方式设计UI,即应用程序的“打印”动作显示一个包含所有应用程序特定设置的对话框,可能包括预览,并且其中包含打开QPrintDialog以选择打印机并设置任何打印机的特定属性

+0

对于您如何建议设计*自定义打印对话框*,通过按钮打开本机打印对话框+1。这听起来很不错;) – leemes

+0

嗨安德烈亚斯。如果没有办法自定义对话框,那么这听起来确实是最好的方法。谢谢! – Fabian