2012-10-04 91 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